Öffentliches Register
Software-GesundheitsberichtSchema 0.26.0 · Metriken 1.13.0 · 2026-07-22 03:00 UTC

OriginProtocol / origin-dollar

OUSD and OETH are stablecoins that passively accrue yield while you are holding it

JavaScript · Solidity · PythonMIT★ 151 Sterne⑂ 112 Forksseit Aug. 2020Auf GitHub ansehen ↗

OriginProtocol/origin-dollar erreicht einen Gesundheitsindex von 73 von 100 und liegt damit im Bereich Gut. Am stärksten schneidet es bei Vitality (79/100) ab, am schwächsten bei Community & Adoption (59/100). Zuletzt heute aktualisiert. 2 Mitwirkende tragen den Großteil der jüngsten Arbeit.

73
gesamt / 100
Gut

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.

73
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

Origin ProtocolOrganisation
103 Follower105 öffentliche Reposseit Aug. 2017

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

Metriken nach Kategorie

Vitalität

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

79Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
33.2/36Commit-Rhythmus — 48/52 Wochen mit Commits
18/18Commit-Volumen — 188 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year188
human_commit_share1
days_since_last_push0
active_weeks_last_year48
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 15 Releases veröffentlicht
0/36Release-Aktualität — letztes Release vor 1.082 Tagen
19.8/27Release-Rhythmus — ein Release etwa alle 101,3 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count15
latest_release_tagv0.1.8
releases_from_tagsnein
days_since_latest_release1.082
mean_days_between_releases101,3
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?

59Mittel · 18 % des Gesamtindex
Wie die Bewertung erfolgt
35.3/60Stars — 151 Stars
17/25Forks — 112 Forks
8.7/15Watcher — 37 Watcher
Verwendete Eingangsdaten
forks112
stars151
watchers37
growth_stateorganic
growth_factor_pct100
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
6.3/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templateja

Nachhaltigkeit & Governance

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

71Gut · 24 % des Gesamtindex
Wie die Bewertung erfolgt
25.2/54Bus-Faktor — 2 Beitragende decken die Hälfte aller Commits ab
12.5/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 44 % der Commits
13.5/13.5Breite der Beitragenden — 48 Beitragende
10/10OpenSSF Scorecard: Contributors — project has 8 contributing companies or organizations
Verwendete Eingangsdaten
bus_factor2
contributors_sampled48
top_contributor_share0,443
Wie die Bewertung erfolgt
34.9/46.8Issue-Lösungsquote — 75 % der Issues geschlossen
33.4/38.3PR-Annahme — 1.869/2.141 entschiedene PRs gemergt
15/15OpenSSF Scorecard: Code-Review — all changesets reviewed
Verwendete Eingangsdaten
merged_prs1.869
open_issues189
closed_issues559
issue_closed_ratio0,747
closed_unmerged_prs272
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
14.5/25Reichweite des Inhabers — 103 Follower von OriginProtocol
25/25Kontohistorie — 105 öffentliche Repos, Kontoalter ca. 8 Jahre
Verwendete Eingangsdaten
followers103
owner_typeOrganization
is_verified
owner_loginOriginProtocol
public_repos105
account_age_days3.276

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

79Gut · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 3 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration — .eslintrc.js
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
18/20OpenSSF Scorecard: CI-Tests — 29 out of 30 merged PRs checked by a CI test -- score normalized to 9
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_configja
has_precommit_confignein
Wie die Bewertung erfolgt
30/30README
0/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://originprotocol.com
10/10Repository-Beschreibung
10/10Topics — 3 Topics
10/10Wiki
Verwendete Eingangsdaten
topicsdefi, ethereum, web3
has_wikija
homepagehttps://originprotocol.com
has_readmeja
has_docs_dirnein
has_descriptionja

Sicherheit

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

73Gut · 16 % des Gesamtindex
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
4.5/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.2/2.5CI-Tests — 29 out of 30 merged PRs checked by a CI test -- score normalized to 9
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
7.5/7.5Code-Review — all changesets reviewed
2.5/2.5Contributors — project has 8 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
1.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
5/5SAST — SAST tool detected
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — keine Daten
7.5/7.5Token-Permissions — GitHub workflow tokens follow principle of least privilege
0/7.5Vulnerabilities — 171 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate7,3
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): signed_releases. Die verbleibenden Gewichte wurden renormalisiert.

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.

76Gut · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — AGENTS.md, CLAUDE.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 95 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,95
agent_instruction_filesAGENTS.md, CLAUDE.md
agent_instruction_max_bytes8.324
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — .eslintrc.js
11/11Statische Typprüfung — contracts/tsconfig.json
10/10Reproduzierbare Umgebung — Dockerfile, lockfile
10/10Belegte Agentenpraxis — 6 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
3/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilespnpm-lock.yaml, yarn.lock
has_dockerfileja
typed_languagenein
bootstrap_files
has_devcontainernein
has_linter_configja
typecheck_configscontracts/tsconfig.json
agent_commit_share0,06
toolchain_manifests
dependency_bot_commit_share0
Wie die Bewertung erfolgt
27/45Typprüfbarer Code — JavaScript mit Typprüfungs-Konfiguration (contracts/tsconfig.json)
54/55Handhabbare Dateigrößen — 8/453 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageJavaScript
largest_source_bytes121.545
source_files_sampled453
oversized_source_files8

Eckdaten

151GitHub-Sterne
48Mitwirkende
188Commits, letzte 12 Monate
0Tage seit letztem Push
15Releases
2Bus-Faktor
189offene Issues
npmPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Could not fetch npm package 'origin-dollar' from its registry
  • Could not fetch npm package 'origin-defi-contracts' from its registry
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Weitere Details

Stern- und Fork-Verlauf 151 ★ / 112 ⇿
151Sterne
112Forks
15Releases

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.

04080120160151110102020-092023-082026-07
Major 0Minor 0Patch 2

Jeder Punkt umfasst 6 Tage.

OpenSSF Scorecard 7.3 / 10
7.3Gesamtwert

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

10Binary-Artifactsno binaries found in the repo
6Branch-Protectionbranch protection is not maximal on development and all release branches
9CI-Tests29 out of 30 merged PRs checked by a CI test -- score normalized to 9
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
10Contributorsproject has 8 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
3Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 3
10SASTSAST tool detected
0Security-Policysecurity policy file not detected
k. A.Signed-Releasesno releases found
10Token-PermissionsGitHub workflow tokens follow principle of least privilege
0Vulnerabilities171 existing vulnerabilities detected
Direkte Abhängigkeiten 12
RegistryPaketVersionsvorgabeManifest
npm@chainlink/contracts-ccip1.2.1contracts/package.json
npm@chainsafe/bls^8.2.0contracts/package.json
npm@lodestar/api^1.41.0contracts/package.json
npm@lodestar/config^1.41.0contracts/package.json
npm@lodestar/params^1.41.0contracts/package.json
npm@lodestar/state-transition^1.41.0contracts/package.json
npm@lodestar/types^1.41.0contracts/package.json
npm@lodestar/utils^1.41.0contracts/package.json
npm@talos/clientgithub:oplabs/talos#8f15dbbdc96a4d3cabf932d41e016779c0946266&path:packages/clientcontracts/package.json
npm@types/pg^8.20.0contracts/package.json
npmorigin-morpho-utils^0.1.1contracts/package.json
npmpg^8.20.0contracts/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

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [
        "defi",
        "ethereum",
        "web3"
      ],
      "is_fork": false,
      "size_kb": 84637,
      "has_wiki": true,
      "homepage": "https://originprotocol.com",
      "languages": {
        "Shell": 19685,
        "Python": 797460,
        "Solidity": 1280678,
        "JavaScript": 2368118,
        "TypeScript": 68125
      },
      "pushed_at": "2026-07-22T01:35:28Z",
      "created_at": "2020-08-03T18:40:09Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-20T11:00:58Z",
      "description": "OUSD and OETH are stablecoins that passively accrue yield while you are holding it",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "master",
      "license_spdx_raw": "MIT",
      "primary_language": "JavaScript",
      "significant_languages": [
        "JavaScript",
        "Solidity",
        "Python"
      ]
    },
    "owner": {
      "blog": "https://www.originprotocol.com",
      "name": "Origin Protocol",
      "type": "Organization",
      "login": "OriginProtocol",
      "company": null,
      "location": "Earth",
      "followers": 103,
      "avatar_url": "https://avatars.githubusercontent.com/u/30638653?v=4",
      "created_at": "2017-08-01T22:05:41Z",
      "is_verified": null,
      "public_repos": 105,
      "account_age_days": 3276
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.1.8",
          "kind": "patch",
          "published_at": "2023-08-04T14:32:01Z"
        },
        {
          "tag": "v0.1.7",
          "kind": "patch",
          "published_at": "2023-08-04T14:26:42Z"
        },
        {
          "tag": "deploy-32",
          "kind": "other",
          "published_at": "2021-12-10T16:54:21Z"
        },
        {
          "tag": "deploy-019",
          "kind": "other",
          "published_at": "2021-07-07T16:50:04Z"
        },
        {
          "tag": "deploy-018",
          "kind": "other",
          "published_at": "2021-06-30T23:23:29Z"
        },
        {
          "tag": "deploy-017",
          "kind": "other",
          "published_at": "2021-05-19T01:14:42Z"
        },
        {
          "tag": "deploy-016",
          "kind": "other",
          "published_at": "2021-03-26T06:47:04Z"
        },
        {
          "tag": "deploy-015",
          "kind": "other",
          "published_at": "2021-02-16T18:12:47Z"
        },
        {
          "tag": "deploy-014",
          "kind": "other",
          "published_at": "2021-02-10T23:52:11Z"
        },
        {
          "tag": "deploy-013",
          "kind": "other",
          "published_at": "2021-02-03T22:52:08Z"
        },
        {
          "tag": "deploy-012",
          "kind": "other",
          "published_at": "2021-02-02T22:22:52Z"
        },
        {
          "tag": "deploy-005",
          "kind": "other",
          "published_at": "2021-01-13T21:50:36Z"
        },
        {
          "tag": "deploy-011",
          "kind": "other",
          "published_at": "2021-01-09T05:09:59Z"
        },
        {
          "tag": "deploy-010",
          "kind": "other",
          "published_at": "2021-01-06T22:55:24Z"
        },
        {
          "tag": "deploy-009",
          "kind": "other",
          "published_at": "2021-01-04T21:21:19Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "07a7fcb052d715409014dd69e69e3c680ee8ae47",
          "body": "* Remove Defender from the repo\n\n* Removed Holesky test chain\n\n* More Holesky changes\n\n* Skip Sonic strategy fork tests\n\n* Fix Base cross chain strategy fork tests\n\n* Fix Base Curve AMO fork test",
          "is_bot": false,
          "headline": "Remove Defender and Holesky (#2944)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-07-20T11:00:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f65bb1ceeb7b2697c21065be88f31f0a8ce0a32",
          "body": "* Add OUSD allocation optimizer skill\n\nA Claude Code skill that recommends how to rebalance OUSD collateral\nacross the enabled strategies (Ethereum/Base/HyperEVM Morpho, the Curve\nOUSD/USDC AMO, and the vault buffer) to maximize blended OUSD APY.\n\nBuilds on Shah's `ousd-rebalancing` skill (productio\n[…]\nn\nrebalancer specified. Review verdict: good (HyperEVM held ~9% post-move).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add OUSD allocation optimizer skill (#2941)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-07-16T14:01:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "beb978ffa14013c7162cd5580f2d970c62f58fc5",
          "body": null,
          "is_bot": false,
          "headline": "Add scheduled actions reference doc + CLAUDE.md sync rule (#2940)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-07-15T07:10:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "920900964ed5aa59127ea700f2acfd784bab70c1",
          "body": "* Withdraw all from Hydrex AMO on Base\n\n* Added withdraw from Base Curve AMO to run log",
          "is_bot": false,
          "headline": "Runlog 10 July 2026 - Withdraw all from Hydrex AMO on Base (#2935)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-07-14T11:50:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8618fe8e6effeb5cf967d3d311993b75d999e7b",
          "body": "runContainer reports it as the runner's version, letting the Talos admin\nannounce redeploys to Discord. Empty default keeps local builds working.",
          "is_bot": false,
          "headline": "Bake GIT_COMMIT_SHA into runner image (#2939)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-07-13T15:16:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "804b89e2f724dbe6b62a9973ebece829da541917",
          "body": null,
          "is_bot": false,
          "headline": "Bump @talos/client to 8f15dbbdc96a (#2937)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-07-13T10:37:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e3d02b66ec1e46737eb2d71c8ffe958357c1c34",
          "body": null,
          "is_bot": false,
          "headline": "Check nonce before relaying message (#2938)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-07-13T10:35:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e1c272bdf448bbfa15233d89fc2971c8e483b13",
          "body": "* Clean up beacon state cache after each beacon action\n\n* Clean up old cached beacon chain state files if more than 1 day old\n\n---------\n\nCo-authored-by: Nicholas Addison <nick@addisonbrown.com.au>",
          "is_bot": false,
          "headline": "Clean up beacon state cache after each beacon action (#2936)",
          "author_name": "Chris",
          "author_login": "apexearth",
          "committed_at": "2026-07-13T09:13:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c52692d96110c9b9752f39775249ad56ebfa0264",
          "body": "Adds an `ousd_rebalancer` row to the Talos schedules seed so the OUSD\nRebalancer action shows up in the Talos admin UI and can be triggered\nmanually via \"Run now\". The hardhat task `ousdRebalancer` was already\nregistered (and thus in the actions catalog), but with no `schedules`\nrow it was neither l\n[…]\n manual-only rows (stake_validator, queue_proposal, ...), so\nit never fires on a schedule — only on an operator-initiated Run now.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add OUSD rebalancer schedule (manual, disabled) (#2933)",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-07-01T12:35:46Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c097f0c8cce56ff379dba4caa9594972016528f0",
          "body": null,
          "is_bot": false,
          "headline": "Bump @talos/client to db24b13f33be (#2932)",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-07-01T12:18:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2c852e1db385b0813ab45e226ab2a0890299e2e",
          "body": "* Change rebalancer config\n\n* Add portfolio APY\n\n* fix\n\n* update scripts\n\n* minor bug fix\n\n* Migrate to Talos",
          "is_bot": false,
          "headline": "Portfolio APY for the Rebalancer (#2880)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-06-30T19:33:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a29da20357bb2a135bbbe77d8d465947c8819081",
          "body": "* Remove the Convex AMO strategy from the OETH Vault\n\n* Add proposalId for Convex AMO strategy removal in OETH Vault\n\n* Recreated the gov prop to remove OETH Convex AMO\n\n* Removed defeated deploy script\n\n---------\n\nCo-authored-by: Nicholas Addison <nick@addisonbrown.com.au>",
          "is_bot": false,
          "headline": "Remove the Convex AMO strategy from the OETH Vault (#2907)",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-06-30T02:07:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44312e3d76e8c0340810d3c40a62e9654cc30914",
          "body": null,
          "is_bot": false,
          "headline": "Bump @talos/client to e0c53b2f06b8 (#2931)",
          "author_name": "Chris",
          "author_login": "apexearth",
          "committed_at": "2026-06-24T06:18:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d78437879c5e96a5af2243ca1fd3cc92209192b4",
          "body": null,
          "is_bot": false,
          "headline": "Remove legacy dockerfile (#2930)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-06-22T08:30:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e2a537e2b8e02ec8245297b32eec188cc725d85",
          "body": "* add a deploy review skill\n\n* update skill",
          "is_bot": false,
          "headline": "Add /verify-deployment-pr skill for deploy-PR review (#2922)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-06-22T01:18:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e974b2b4dab2a34c97eae898a6995cf4c6d7a5d8",
          "body": "* ci: build runner image off master (was talos)\n\n* remove unneeded run",
          "is_bot": false,
          "headline": "ci: build runner image off master (was talos) (#2929)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-06-17T12:08:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "43037de14164025139abcbb517a8a2b9c6088e71",
          "body": "* add the KMS connector module\n\n* ai review/plan\n\n* supply cron configuration as a json file\n\n* trigger cron-jobs via http request. Query the job result via HTTP\n\n* move actions\n\n* convert to ts\n\n* rename/upgrade ts\n\n* make github build the image instead of docker\n\n* fix node issue\n\n* rename image\n\n\n[…]\nthored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>\nCo-authored-by: Nicholas Addison <nick@addisonbrown.com.au>\nCo-authored-by: Shahul Hameed <10547529+shahthepro@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Talos (#2928)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-06-17T09:19:33Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6a40630a717124f02b1225180f9fe9b720a1f42c",
          "body": "* Deploy 200 to remove old compounding strategy\n\n* Updated OETH contracts diagram",
          "is_bot": false,
          "headline": "Mainnet Deploy 200 - Remove old Compounding Staking Strategy (#2926)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-06-17T05:37:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5acff6ac4484d861b1afcb83fdb3213c523a75da",
          "body": "…ompounding Staking Strategy (#2924)",
          "is_bot": false,
          "headline": "Remove all from old Compounding Staking Strategy and deposit to new C…",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-06-15T13:17:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bffc23ebfc4de07eafcaf8a155d3a2e501e63fa7",
          "body": "* Changed initial deposit to 32.25 ETH\n\n* Change initial deposit to 32.25 ETH\n\n* Updated ValidatorState.ACTIVE comment\n\n* Keeping old 1 ETH deposit diagram as that's the referred process\n\n* Bump the deploy script number\n\n* Cap the size of the initial validator deposit\n\n* Prettier\n\n* Update stakeVali\n[…]\nthdrawSsvClusterEth to ignore consensus rewards in NativeStakingSSVStrategy (#2920)\n\n* Deployed mainnet 199\n\n* Add proposal id to deploy 199\n\n---------\n\nCo-authored-by: Domen Grabec <grabec@gmail.com>",
          "is_bot": false,
          "headline": "Deploy 199: Vanilla validator compounding staking strategy (#2921)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-06-15T04:17:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c6eeb562fb37c0437a0ba5af34574243304eacff",
          "body": "* migrate contracts to Talso signer\n\n* fix fork tests\n\n* add the migration for the OGN rewards module\n\n* refactor deployment\n\n* add some comments\n\n* add base migration files\n\n* add remaining migrations for base and one for sonic\n\n* add hyperevm migration\n\n* remove the old relayer roles\n\n* commit gov\n[…]\n files\n\n* add proposal id\n\n* correct proposal id location\n\n* add remaining mainnet deployments\n\n* add base deployments\n\n* add deployments\n\n* add sonic deployment files\n\n* add hyperevm deployment files",
          "is_bot": false,
          "headline": "[Deploy] Talos Governance Migration (#2913)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-06-13T07:38:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dea63ebaba4f6ff8ef2f1b4ec9d2647ce41e76e7",
          "body": "* Changed initial deposit to 32.25 ETH\n\n* Change initial deposit to 32.25 ETH\n\n* Updated ValidatorState.ACTIVE comment\n\n* Keeping old 1 ETH deposit diagram as that's the referred process\n\n* Bump the deploy script number\n\n* Cap the size of the initial validator deposit\n\n* Prettier\n\n* Update stakeVali\n[…]\n in NativeStakingSSVStrategy (#2920)\n\n* Add prop id to deploy 196 script (#2917)\n\n---------\n\nCo-authored-by: Domen Grabec <grabec@gmail.com>\n\n---------\n\nCo-authored-by: Domen Grabec <grabec@gmail.com>",
          "is_bot": false,
          "headline": "Allow initial deposits to activate validators (#2885)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-06-10T11:49:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a3a783cc05eccfaa2f15fed3ceb45bcf297d81a7",
          "body": null,
          "is_bot": false,
          "headline": "Add prop id to deploy 196 script (#2917)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-06-10T05:12:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a1c7d1408edab4a0acf6c7111bd6063795bd7664",
          "body": "…use rebases) (#2911)\n\n* migrate contracts to Talso signer\n\n* fix fork tests\n\n* add the migration for the OGN rewards module\n\n* refactor deployment\n\n* add some comments\n\n* add base migration files\n\n* add remaining migrations for base and one for sonic\n\n* add hyperevm migration\n\n* remove the old relayer roles",
          "is_bot": false,
          "headline": "Migrate vault & cross-chain operators to the new Talos signer (+ unpa…",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-06-09T20:01:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "08c2f4df6af0b94f44c9b123a8c5ae8027daeb3a",
          "body": null,
          "is_bot": false,
          "headline": "Fix removeSsvValidator to work with Clusters with ETH payments (#2908)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-06-09T09:06:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2efa2a31222dc3937c0fbf290211d07b95422d9b",
          "body": null,
          "is_bot": false,
          "headline": "change pre-commit hook to pnpm (#2910)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-06-02T04:09:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2e58be9c96c04310a7a2d9808196bc6e60732f25",
          "body": "* Fix contracts cron image pnpm version\n\n* Changed package.json to use pnpm",
          "is_bot": false,
          "headline": "Fix contracts cron image pnpm version (#2904)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-06-01T03:24:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c90a5d882e8228f8a0ce836a07eff2552cad3b0",
          "body": "* Governance proposal to claim the SSV from the staking strategies\n\n* Renamed Hardhat task depositSSV to depositCluster and have it work with ETH deposits\nRemoved old registerValidators and stakeValidators Hardhat tasks using the P2P APIs\nHardhat registerValidator now works with ETH deposits\n\n* Bump deploy number\n\n* Added .migration record",
          "is_bot": false,
          "headline": "SSV Cluster migration cleanup (#2892)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-05-26T23:31:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd7218c2b070a52470b2621c3ce0ce12378ba700",
          "body": null,
          "is_bot": false,
          "headline": "lint (#2896)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-05-13T09:49:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e066d888d2e3ebd652b754e3fdfae51978c99ce",
          "body": "* Remove Supernova strategy from OETH Vault\n\n* Remvoe supernova fixture\n\n* add proposal id\n\n---------\n\nCo-authored-by: Domen Grabec <grabec@gmail.com>",
          "is_bot": false,
          "headline": "Remove Supernova strategy from the OETH Vault (#2890)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-05-13T09:34:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "69923754bce85c0d4dd3898e35b9458489a1baa8",
          "body": "* Deploy OUSD and OETH Vaults\n\n* Deploy Base and Sonic Vaults\n\n* prettify\n\n* fix failing fork test",
          "is_bot": false,
          "headline": "[Ethereum][Base][Sonic] Re-deploy Vaults (#2894)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-05-12T08:05:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1dd041f730ddf93b32b29dac3bd9f5bd3ea5f744",
          "body": "* Unpause rebase in fork test fixtures\n\nThe four production vaults (OUSD, OETH on mainnet, OETHb on Base,\nOSonic on Sonic) sit with `rebasePaused = true` on chain between\nstrategist rebase cycles. Fork tests, which start from current chain\nstate, inherit that and revert with `Rebasing paused` on eve\n[…]\n140 >= 982979757405`.\n\nBump the tolerance on these specific assertions to 3%. Other\nassertions in the file (which deposit into balanced pools) keep the\ndefault 1% tolerance.\n\nLocal run: 73/73 passing.",
          "is_bot": false,
          "headline": "Fix fork tests broken by permissioned rebase (#2893)",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-05-11T09:22:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4d99a860b1d478dee208560fbb21b52df0ab5081",
          "body": "* add deploy resilience\n\n* deploy Hydrex AMO\n\n* move a proxy to a more appropriate location",
          "is_bot": false,
          "headline": "Hydrex AMO deployment (#2887)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-05-11T09:17:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "960eda756ca39710fa850fbbb15ff2a9166a43cb",
          "body": null,
          "is_bot": false,
          "headline": "Remove LayerZero now Plume has been sunset (#2891)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-05-11T06:43:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "800ef7a446f678cd9b4b58d05f82fbaade5535ab",
          "body": "* Add permissioned rebase\n\n* Remove public rebase",
          "is_bot": false,
          "headline": "Add permissioned rebase (#2889)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-05-10T09:53:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3de581ac7ad1aaa0a199237aa8b77812788f0dbd",
          "body": "* Add Safe Module for permissioned rebase\n\n* update address checksum\n\n* Deploy modules\n\n* Add sonic deployment\n\n* redeploy sonic contract",
          "is_bot": false,
          "headline": "Add Safe Module for permissioned rebase (#2888)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-05-06T21:23:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b26695ae31bd4d4378d1b1ccdb7a8a41d50f6540",
          "body": "* initial commit of the hydrex AMO\n\n* move gauge mock to deploy file\n\n* move gauge mock to deploy file\n\n* remove mock gauge\n\n* adjust harvester",
          "is_bot": false,
          "headline": "Base Hydrex AMO (#2886)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-05-06T07:47:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc044c5a4aa9b2b3676d4c356ac257bacee35818",
          "body": "* Add consol option to doAccounting Hardhat task\n\n* Changed doAccounting Action to use the ConsolidationController\n\n* Added getValidators Hardhat task\nRefactored getting Beacon chain data to use Lodestar. So removed Beaconcha.in API use\n\n* Removed reference to BEACONCHAIN_API_KEY\nFormatting of getVa\n[…]\nndencies\n\n* Changed back to using GET for bulk validators\n\n* Bumped deploy script number\n\n* Updated Claude file with SSV cluster payment details\n\n* Prettier\n\n* Deployed 192_migrate_ssv_clusters_to_eth",
          "is_bot": false,
          "headline": "Update of SSV clusters to use ETH payment (#2860)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-05-05T02:45:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "07bbede80a3eee6ce1618d60ad6a9cf798905eb8",
          "body": "…idator Hardhat tasks (#2871)\n\n* Added consol option to withdrawValidator Hardhat task\n\n* Add consol option to exitValidators Hardhat task\n\n* Added consol option to the stakeValidator Hardhat task\n\n* Added run log to withdraw from Compounding Staking Strategy\n\n* getValidators to use GET rather than POST beacon chain API",
          "is_bot": false,
          "headline": "Added consol option to withdrawValidator, exitValidators and stakeVal…",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-05-04T20:15:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "78e46692dbc4b7473b249d43b9fb18aa248480ef",
          "body": "…ces task (#2881)\n\nWhen snapBalances runs with --consol, the tx is sent to ConsolidationController\nbut the BalancesSnapped event is emitted by the target strategy. The receipt's\ndecoded events are bound to the controller's ABI so the event lookup failed\nand the task threw even though the tx succeeded.\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: decode BalancesSnapped event via strategy interface in snapBalan…",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-04-30T10:26:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a2c24b5d84363a4e639e1a34b4bbdfaa8ade6d87",
          "body": null,
          "is_bot": false,
          "headline": "Added updateWOETHPrice Hardhat task (#2884)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-04-30T09:50:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "354a7a55ae06b57ebbd7f1948a9c28b282010c26",
          "body": null,
          "is_bot": false,
          "headline": "Added fundWithdrawals Hardhat task (#2883)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-04-30T09:04:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dbae51ad8d9f6f2ec24073414e2a6d46716d1ddd",
          "body": null,
          "is_bot": false,
          "headline": "add defender action to backfill a transaction whenever necessary (#2879)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-04-17T12:18:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f505429c6861187a292938b8f84f298e8ebc161",
          "body": null,
          "is_bot": false,
          "headline": "Include domain in the key for crosschain relay (#2878)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-04-17T08:57:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "193b626882cf95e719af6793fa5f3e07c41e0b7c",
          "body": "* Fix surplus funding tests\n\n* Add support for simulation\n\n* Try new alg\n\n* Write to file\n\n* Cleanup code\n\n* change to UTC timestamp\n\n* Add address to JSON export",
          "is_bot": false,
          "headline": "Simulate hypothetical balance on the rebalancer (#2877)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-04-14T09:33:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70c2c1c595eb9e29c53dc9ae6967ee4b98a7b5fb",
          "body": "* Add core logic and safe module\n\n* Update core logic\n\n* Add defender action\n\n* Rename methods, add readme file\n\n* Push discord notification and rollup config changes\n\n* Fix AMO balance\n\n* Add whitelist to module and a few code changes\n\n* tweaks to rebalancer\n\n* Refactor and simplify rebalancer\n\n* M\n[…]\nsage\n\n* Bug fixes\n\n* Add more tests\n\n* add more tests\n\n* clean up code\n\n* fix discord message\n\n* Fix discord message\n\n* cleanup code\n\n---------\n\nCo-authored-by: Nick Addison <nick@addisonbrown.com.au>",
          "is_bot": false,
          "headline": "Automated Rebalancer (#2835)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-04-13T08:49:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "df67f72c1c8502a31db503b0c903c942e2cc7ca4",
          "body": "* Add support for handling multiple CCTP messages in a single tx\n\n* Change gas limit\n\n* Restore tx level cache\n\n* Fix bug",
          "is_bot": false,
          "headline": "Add support for handling multiple CCTP messages in a single tx (#2873)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-04-13T07:59:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d72db1bc76ea9b41e0b889d2321d85b008167c1e",
          "body": null,
          "is_bot": false,
          "headline": "change docker configuration (#2875)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-04-09T13:16:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "10b029e9d7013a12afdd8d28e6ee947bcd886199",
          "body": "…ter campaigns (#2845)\n\n* feat: add Defender Action to update Votemarket epochs for Curve Pool Booster campaigns on Arbitrum\n\n* feat: add new action variable and update action for Votemarket epochs\n\n* prettier",
          "is_bot": false,
          "headline": "feat: Defender Action to update Votemarket epochs for Curve Pool Boos…",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-04-08T11:22:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f880ea79c283af3ac5ee85b4e256025c16f61d6a",
          "body": "* Deploy of 190_remove_3rd_native_staking_strategy\n\n* Bump deploy script number for remove_3rd_native_staking_strategy\n\n* Add proposal id to deploy script",
          "is_bot": false,
          "headline": "[Ethereum] Deploy 190 - Remove 3rd Native Staking Strategy (#2872)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-04-07T13:42:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5cb9b7a3c7aeb1f15838c16cf2533f538b41022c",
          "body": "* Deploy script to remove the 3rd native staking strategy from the OETH Vault\n\n* Remove 3rd native staking strategy from Defender Actions doAccounting and harvest\n\n* Removed 3rd native staking strategy from OETH contract diagram\n\n* Removed old validator registration and staking using P2P",
          "is_bot": false,
          "headline": "Remove 3rd native staking strategy from OETH Vault (#2866)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-04-06T09:45:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7481780d608b6f11e2475058ff02cf47ee3e4ed8",
          "body": "* Deploy 187 and 188\n\n* prettier\n\n* Move 187/188 to 188/189",
          "is_bot": false,
          "headline": "Deploy 187 and 188: CoW harvesting EIP-1271 for OETH and OGN (#2858)",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-04-02T15:17:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba13adcc2b8c0a8b30c7571069d0f8ce19ed060a",
          "body": null,
          "is_bot": false,
          "headline": "[Ethereum] Deploy 187 - Upgrade strategies for better harvesting (#2869)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-04-02T14:44:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87703073c3c848ab1902a0d964fe5f3c64a21105",
          "body": null,
          "is_bot": false,
          "headline": "Fix Slither CI (#2870)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-04-02T13:37:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1cdb84f067205e717b302e3a68e5171b13e80c1d",
          "body": null,
          "is_bot": false,
          "headline": "Fix removeStrategy (#2867)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-04-02T11:34:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6114b09fefc11ad82e3caa1879a75ac1ac734838",
          "body": "* Add april runlog\n\n* Fix comments",
          "is_bot": false,
          "headline": "April runlog (#2865)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-04-01T16:44:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90cc90ef34f34083a158db6d54a37a5726b00e35",
          "body": null,
          "is_bot": false,
          "headline": "Add Defender Action to claim SSV rewards (#2864)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-04-01T15:06:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca5ac399f14128c65f723364696f82d1da45300f",
          "body": "* Fix failing tests\n\n* Fix HyperEVM tests",
          "is_bot": false,
          "headline": "Fix failing tests (#2863)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-04-01T14:01:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ef29c09256bcb58269efe502c70e2a2096c90f7",
          "body": "* Forward rewards to another address\n\n* prettify\n\n* Make strategist harvest rewards\n\n* Fix CI and remove pause functionality\n\n* Fix failing tests\n\n* fix tests\n\n* Rename modifier\n\n* Fix renamed modifier\n\n* Fix unit tests",
          "is_bot": false,
          "headline": "Add support for Strategist to harvest rewards (#2853)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-04-01T09:58:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "773718352ad62c8f59f0c4e20b20337547d120c0",
          "body": "* Packages must now be over 7 days old\n\n* Upgraded Lodestar deps",
          "is_bot": false,
          "headline": "Upgrade Lodestar deps (#2861)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-04-01T08:10:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04e698e65cc833bdd760e4d50caedf095d53218c",
          "body": "…d (#2862)",
          "is_bot": false,
          "headline": "when fetching validator beacon state respect the slot parameter passe…",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-04-01T07:53:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3a8ab77cb1b72e70f2e50dc6672eba817c2f4fb3",
          "body": null,
          "is_bot": false,
          "headline": "remove unneeded file (#2844)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-03-24T03:47:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a8b4653f8c7227214d27b96556f080036c1be1c",
          "body": "* Add gasLimit for crosschain relays\n\n* fix block lookback",
          "is_bot": false,
          "headline": "Add gasLimit for crosschain relays (#2849)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-03-23T17:34:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb7cdfd6821ca1bf5b58099ae43899add936e2e3",
          "body": null,
          "is_bot": false,
          "headline": "Add HyperEVM script to rollup config (#2852)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-03-23T10:06:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20bac14ba05e3cd0e8db8f32ca8a96bfab6ba662",
          "body": null,
          "is_bot": false,
          "headline": "Update Readme file (#2851)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-03-23T09:55:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "01891e7213df15f032692b6c07677569e6cc6772",
          "body": "…2846)\n\n* deploy: 186 + 047 MerklPoolBoosterBribesModule on Mainnet and Base\n\n* feat: add manageMerklBribes actions to README and rollup config",
          "is_bot": false,
          "headline": "Deploy 186 + 047: MerklPoolBoosterBribesModule on Mainnet and Base (#…",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-03-20T09:14:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f8a8a5621707b4b0c2ef2032fe26df266521ee2",
          "body": "Re-deploys HarvestingEIP1271 with contract improvements:\n- Replace arbitrary execute() with restricted transferTokens() for safer token recovery\n- Remove redundant safeApprove(0) reset before max approval in setSellTokenConfig\n- Add NotAllowed error for transferTokens on configured tokens",
          "is_bot": false,
          "headline": "Re-deploy 183: CoW harvesting EIP-1271 validator (#2847)",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-03-20T08:47:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18624654138d97170b09297ce97d98cdafee1b23",
          "body": "* Add consol option to doAccounting Hardhat task\n\n* Changed doAccounting Action to use the ConsolidationController\n\n* Added getValidators Hardhat task\nRefactored getting Beacon chain data to use Lodestar. So removed Beaconcha.in API use\n\n* Removed reference to BEACONCHAIN_API_KEY\nFormatting of getVa\n[…]\nl\n\n* Got getValidators working with dRPC\n\n* Added consol option to verifyDeposits which has to call snapBalances on the ConsolidationController\n\n* FIxed consolidation fork tests\n\n* Updated Claude file",
          "is_bot": false,
          "headline": "Validator Consolidation tasks (#2840)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-03-20T07:40:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fbaa028eaf42e13ea58f3ca838b596b26fcf415b",
          "body": "…ipts (#2843)\n\nAdds a Gnosis Safe module that allows an operator (Defender relayer) to\ntrigger `bribeAll` on the PoolBoosterFactoryMerkl contract through the Safe,\nanalogous to the existing CurvePoolBoosterBribesModule.\n\n- `MerklPoolBoosterBribesModule.sol`: Safe module with `bribeAll(address[])`\n  \n[…]\nalidatorRegistrator as operator\n- `deploy/base/047_merkl_pb_bribes_module.js`: Base deploy with\n  OZRelayerAddress as operator\n- `tasks/tasks.js`: registers `manageMerklPoolBoosterBribes` Hardhat task",
          "is_bot": false,
          "headline": "feat: add MerklPoolBoosterBribesModule + Defender action + deploy scr…",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-03-19T14:08:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "59773d07a62c413adbae0dfdecd414260a362056",
          "body": "* Prepare Repo for HyperEVM setup\n\n* prettify\n\n* Add fork tests and configure defender actions\n\n* [Ethereum][HyperEVM] Deploy CrossChain strategy for HyperEVM (#2842)\n\n* [Ethereum] Deploy 183 - HyperEVM Strategy Proxy\n\n* Deploy 184 - HyperEVM Master Strategy implementation\n\n* Tweak deploy script for HyperEVM a bit\n\n* Deploy HyperEVM contracts\n\n* Add the Claude script\n\n* Add fork tests\n\n* Fix Ethereum fork test",
          "is_bot": false,
          "headline": "Prepare Repo for HyperEVM setup (#2839)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-03-18T08:30:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f2a92d430892033a04c5263334454d8fcf21a594",
          "body": null,
          "is_bot": false,
          "headline": "Deploy CoW Harvester (#2841)",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-03-17T15:37:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "056e347deafff97b1eaa76bac39dd1f911fd83a4",
          "body": null,
          "is_bot": false,
          "headline": "fix: typo 'nonrebase_cotract' -> 'nonrebase_contract' in tests (#2744)",
          "author_name": "phessophissy",
          "author_login": "phessophissy",
          "committed_at": "2026-03-17T03:27:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1eb689ae79c1b8ad845dbe6ef089623513e75ec",
          "body": "* Deploy 181 - validator consolidation\n\n* Added entry to .migrations for 181 deploy\n\n* Added proposal id for deploy 181",
          "is_bot": false,
          "headline": "Deploy 181 - Validator Consolidation (#2833)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-03-16T05:38:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d0a53abe66ee16c76368d261651543174070405",
          "body": "* Deploy 182\n\n* Update CurvePoolBoosterBribesModule address in mainnet addresses",
          "is_bot": false,
          "headline": "Deploy 182: chunk Curve PB module (#2838)",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-03-13T12:17:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c0395309fcb408452db89b85e574e2d0ddc8b3f",
          "body": "…(#2837)\n\n* Enhance CurvePoolBoosterBribesModule: Add support for managing selected pool boosters and chunked transactions\n\n* prettier",
          "is_bot": false,
          "headline": "Fix Curve PB bribe management gas by chunking explicit booster lists …",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-03-13T11:17:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a96e9b372ac3e24b068eb688a271adb1f3b9f2e0",
          "body": null,
          "is_bot": false,
          "headline": "add march runlog (#2836)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-03-12T23:11:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d8827e0ec2727a34ad6384901dda8fb81d1e3c49",
          "body": "* fix ci\n\n* fix ci\n\n* remove unused PoolBoosterMerkl contract and associated tests\n\n* update balance check in algebraAmoStrategy tests to add 3 instead of 2",
          "is_bot": false,
          "headline": "Fix CI (#2834)",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-03-10T15:31:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "817fb11f925e775617aa8c53ab2a823a303be5ae",
          "body": "* Deploy Supernova AMO and upgrade Vault\n\n* set deploy time in migrations\n\n* add proposal id to deploy file\n\n* slither and prettier",
          "is_bot": false,
          "headline": "Deploy 180: Deploy Supernova AMO and upgrade Vault (#2831)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-03-09T10:58:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52444881dc9974c96c15b32ee280aa6d3e96c852",
          "body": "* upgrade cross-chain remote strategy\n\n* prettier",
          "is_bot": false,
          "headline": "Deploy Base 46: upgrade cross-chain remote strategy (#2830)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-03-09T09:56:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d6c82a374a60777adadcad79eabceb97ea237f9",
          "body": "* WIP validator consolidation\n\n* Fixes\n\n* Fixed unit tests\n\n* Added deploy script for consolidation\n\n* Fix the Native Staking Strategy fork tests for the second SSV cluster\n\n* Cleanup\n\n* Made ConsolidationController Ownable\n\n* WIP removing target strategy balance check to confirm consolidation\n\n* Al\n[…]\nes to run for snaps before the consolidation was started\n\n* Bump deploy number\n\n* Fixed consolidation fork tests\n\n* Prettier\n\n* Bump the crosschain_upgrade_remote deploy number\n\n* Bumped deploy number",
          "is_bot": false,
          "headline": "Validator consolidation (#2758)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-03-09T09:54:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bbb45b61e4c9a7c6ce5aae22fdd28dcfebbb9bb1",
          "body": "* Upgrade OUSD Morpho V2 strategy implementation\n\n* add proposal id",
          "is_bot": false,
          "headline": "Deploy 179: Upgrade OUSD Morpho V2 strategy implementation (#2829)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-03-09T09:21:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9b33784287fd70ad5b121a33d5304c7fb3da412",
          "body": "* prettier\n\n* slither and prettier\n\n* minor change\n\n* add comments and slither disables\n\n* lint",
          "is_bot": false,
          "headline": "Lint and slither (#2832)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-03-09T09:20:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff627d2c5535ad959eb215e6b084d5e5d466c275",
          "body": "* initial commit\n\n* add some deployment files\n\n* commit for easier diffs\n\n* rename the variable in stableswap\n\n* fix the fork tests and adjust them to refactoring\n\n* fix fork tests\n\n* add strategy file\n\n* start re-working tests\n\n* migrate some more tests\n\n* more work on fork tests\n\n* fix the fork te\n[…]\ndirection\n\n* add range protection for maxDepeg\n\n* simplify code\n\n---------\n\nCo-authored-by: Nick Addison <nick@addisonbrown.com.au>\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Supernova AMO (#2800)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-03-06T10:18:53Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6b88f3d3f2a88d9bd68a05f8d714d20fdb19b271",
          "body": "* initial commit\n\n* add deploy file\n\n* account for owner liquidity and available liquidity\n\n* prettier\n\n* add comment\n\n* add support to redeem only what is available from 4626 Vault\n\n* enforce the expected liquidity adpater when estimating the additional possible liquidity in the withdrawAll\n\n* Cros\n[…]\n\n\nCo-authored-by: Shah <10547529+shahthepro@users.noreply.github.com>\nCo-authored-by: Nicholas Addison <nick@addisonbrown.com.au>\nCo-authored-by: Clément <55331875+clement-ux@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Enable MorphoV2 WithdrawAll (#2783)",
          "author_name": "Domen Grabec",
          "author_login": "sparrowDom",
          "committed_at": "2026-03-04T16:13:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d80141dbf4a0659afdcbb20077671f2420c9b9cd",
          "body": "…(#2828)",
          "is_bot": false,
          "headline": "[MerklPB] Deploy Mainnet and Base MerklPBFactory and Implementation. …",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-03-04T12:03:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee0d1e8c048a6c66c62740a169ccbf0ac55d6ef2",
          "body": "* Run log - Reallocate from Curve AMO Strategy to Compounding Staking Strategy\n\n* Run log - Base AMO withdraw",
          "is_bot": false,
          "headline": "Run log - 2 March 2026 (#2817)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-03-04T03:02:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b7393dd856ca03c21751cc49f66bfed284f8d28",
          "body": "* [MerklPB] Migrate PoolBoosterFactoryMerkl to Clones (minimal proxy)\n\n- PoolBoosterMerkl: refactor to initializable pattern for clone compatibility\n- PoolBoosterFactoryMerkl: use Clones.cloneDeterministic instead of CREATE2\n- Add implementation, strategist storage with governor setters\n- Simplify c\n[…]\nbe()\n\n* Move acceptConditions call inside _setMerklDistributor\n\n* Add removePoolBoosterByIndex for gas-efficient removal\n\n* prettier\n\n---------\n\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "[MerklPB] Migrate PoolBoosterFactoryMerkl to Beacon Proxy (#2796)",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-03-03T07:54:44Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e4dfff83e7c9b995b339da57e88cc9454315f510",
          "body": "* [Base] Deploy 040 vault upgrade\n\n* Fix _mintWETH funding amount in base fixture\n\nFund account with enough ETH to cover the WETH deposit amount\ninstead of the default 100 ETH.",
          "is_bot": false,
          "headline": "[Base] Deploy 040 Vault Upgrade (#2814)",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-03-02T07:58:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f80e5770315c646500a7fa1c3f83b0f11c2f716",
          "body": "* Replace deprecated mint(address,uint256,uint256) with mint(uint256) in IVault\n\nUpdate the IVault interface to use the new single-param mint signature\nand fix all contract callers: MockNonRebasing, MockRebornMinter,\nAbstractOTokenZapper, OSonicZapper, and PlumeBridgeHelperModule.\n\n* Rewrite Ethereu\n[…]\nt MockRebornMinter.redeem() at requestWithdrawal instead of reverting\n\n* Fix prettier formatting in bridge-helper base fork test\n\n* Add requestWithdrawal boolean to BaseBridgeHelperModule.depositWOETH",
          "is_bot": false,
          "headline": "Async withdrawal + mint(uint256) cleanup (#2813)",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-02-24T22:15:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9b7a703fd9208048cdbf9d4dff92db2edddb8391",
          "body": null,
          "is_bot": false,
          "headline": "Deploy OUSD Auto-Withdrawal Safe Module (#2812)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-02-24T09:00:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f692b0682e5c519b86dcd869819b5be42efdff6d",
          "body": "* Add Auto-Withdrawal Safe Module\n\n* Get rid of rate limit logic\n\n* Add tests\n\n* Address CR comments",
          "is_bot": false,
          "headline": "Add Auto-Withdrawal Safe Module (#2807)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-02-24T08:33:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d459e14e1d2664d88cee8e3424f73de99635f4da",
          "body": "* Fix OUSD/USDC prices in amoStrat Hardhat task\n\n* Run log - 23 Feb withdraw from Morpho v2 OUSD Strategy\n\n* Update script",
          "is_bot": false,
          "headline": "Run log - 23 Feb withdraw from Morpho v2 OUSD Strategy (#2809)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-02-23T05:37:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db6d806ffd9edacfaaef1394256a68a7a6a95ca6",
          "body": "* Updated Vault hierarchy\n\n* Updated OUSD contract diagram\n\n* Added symbol to snapVault Hardhat task for OUSD\nAdded  symbol to queueLiquidity hardhat task for OUSD\n\n* regenerated using latest sol2uml just to be safe",
          "is_bot": false,
          "headline": "Document updates and snapVault for OUSD (#2806)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-02-19T20:16:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "220369aea340d4bdb7d5da8e649fbbaa0ece9a4d",
          "body": "* Run log Allocate 100k USDC to the Cross-chain strategy\n\n* Updated USDC balance message\n\n* Updated withdraw amount",
          "is_bot": false,
          "headline": "Run log - Allocate 100k USDC to the Cross-chain strategy (#2805)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-02-19T11:21:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0e053766ab81e36c9cb1fd8e6c1ad335aa2c4293",
          "body": "* Remove stuff\n\n* Remove stuff\n\n* Remove more stuff\n\n* Fix unit tests\n\n* Fix tests\n\n* remove more stuff\n\n* revert mock files\n\n* few more tweaks\n\n* more delete\n\n* remove older deployment files\n\n* Restore mock contract\n\n* Fix fixtures\n\n* Repo cleanup additions (#2804)\n\n* Removed old generated contract\n[…]\ngy\n\n* morphoOUSDv2Fixture to handle outstanding withdrawal requests\n\n* fix ForkTest: CrossChainRemoteStrategy fork tests\n\n* prettier\n\n---------\n\nCo-authored-by: Nick Addison <nick@addisonbrown.com.au>",
          "is_bot": false,
          "headline": "Repo Cleanup (#2799)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-02-19T11:15:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1fb163b7726edf7b1d80e8994d040c897438cd31",
          "body": "… (#2757)",
          "is_bot": false,
          "headline": "Fix the Native Staking Strategy fork tests for the second SSV cluster…",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-02-19T02:55:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c3c18a683ba522d15ac9762f598c25749bfa7e1",
          "body": "* Add scripts to change Crosschain strategy operator\n\n* Run base deployment",
          "is_bot": false,
          "headline": "Add scripts to change Crosschain strategy operator (#2802)",
          "author_name": "Shah",
          "author_login": "shahthepro",
          "committed_at": "2026-02-18T17:34:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4cd26cb741d6ad2d432a509ea5cfb78a375026a1",
          "body": "* Run log 17 Feb - deposit SSV to clusters\n\n* Added native_staking_3_strat contract",
          "is_bot": false,
          "headline": "Run log 17 feb 26 (#2803)",
          "author_name": "Nick Addison",
          "author_login": "naddison36",
          "committed_at": "2026-02-18T10:36:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "522f5a117e6b0dbe2e601520403cfaca44534cce",
          "body": "…(#2798)",
          "is_bot": false,
          "headline": "[MerklPB] Transfer PoolBoostCentralRegistry governance to strategist …",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-02-16T11:07:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "10af127ddb4862d362abba98b9fef22042eb4936",
          "body": "* [CurvePB] Update CurvePoolBoosterBribesModule address\n\nUpdate the CurvePoolBoosterBribesModule contract address to the new deployment.\n\n\n* lint\n\n* [CurvePB] Refactor bribes module contract initialization and use constants from ethers",
          "is_bot": false,
          "headline": "[CurvePB] Update CurvePoolBoosterBribesModule address (#2797)",
          "author_name": "Clément",
          "author_login": "clement-ux",
          "committed_at": "2026-02-16T11:07:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 15,
      "commits_last_year": 188,
      "latest_release_at": "2023-08-04T14:32:01Z",
      "latest_release_tag": "v0.1.8",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 48,
      "days_since_latest_release": 1082,
      "mean_days_between_releases": 101.3
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 50,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 112,
      "stars": 151,
      "watchers": 37,
      "fork_history": {
        "days": [
          {
            "date": "2020-10-16",
            "count": 1
          },
          {
            "date": "2020-10-25",
            "count": 1
          },
          {
            "date": "2020-11-13",
            "count": 1
          },
          {
            "date": "2020-11-17",
            "count": 1
          },
          {
            "date": "2020-11-27",
            "count": 1
          },
          {
            "date": "2020-12-29",
            "count": 1
          },
          {
            "date": "2021-01-25",
            "count": 1
          },
          {
            "date": "2021-02-20",
            "count": 1
          },
          {
            "date": "2021-06-11",
            "count": 1
          },
          {
            "date": "2021-07-03",
            "count": 1
          },
          {
            "date": "2021-08-09",
            "count": 1
          },
          {
            "date": "2021-10-02",
            "count": 1
          },
          {
            "date": "2021-12-01",
            "count": 1
          },
          {
            "date": "2022-02-04",
            "count": 2
          },
          {
            "date": "2022-02-18",
            "count": 1
          },
          {
            "date": "2022-02-24",
            "count": 1
          },
          {
            "date": "2022-04-30",
            "count": 1
          },
          {
            "date": "2022-05-05",
            "count": 1
          },
          {
            "date": "2022-05-12",
            "count": 1
          },
          {
            "date": "2022-05-26",
            "count": 1
          },
          {
            "date": "2022-08-13",
            "count": 1
          },
          {
            "date": "2022-08-30",
            "count": 1
          },
          {
            "date": "2022-09-08",
            "count": 1
          },
          {
            "date": "2022-10-31",
            "count": 1
          },
          {
            "date": "2022-11-08",
            "count": 1
          },
          {
            "date": "2023-01-03",
            "count": 1
          },
          {
            "date": "2023-01-09",
            "count": 1
          },
          {
            "date": "2023-02-09",
            "count": 1
          },
          {
            "date": "2023-02-15",
            "count": 1
          },
          {
            "date": "2023-03-09",
            "count": 1
          },
          {
            "date": "2023-04-01",
            "count": 1
          },
          {
            "date": "2023-04-06",
            "count": 1
          },
          {
            "date": "2023-04-17",
            "count": 1
          },
          {
            "date": "2023-05-01",
            "count": 1
          },
          {
            "date": "2023-05-25",
            "count": 1
          },
          {
            "date": "2023-06-04",
            "count": 1
          },
          {
            "date": "2023-06-05",
            "count": 1
          },
          {
            "date": "2023-06-13",
            "count": 1
          },
          {
            "date": "2023-06-14",
            "count": 1
          },
          {
            "date": "2023-06-20",
            "count": 1
          },
          {
            "date": "2023-08-20",
            "count": 1
          },
          {
            "date": "2023-08-23",
            "count": 1
          },
          {
            "date": "2023-08-26",
            "count": 1
          },
          {
            "date": "2023-09-30",
            "count": 1
          },
          {
            "date": "2023-10-17",
            "count": 1
          },
          {
            "date": "2023-11-20",
            "count": 1
          },
          {
            "date": "2024-02-02",
            "count": 1
          },
          {
            "date": "2024-02-04",
            "count": 1
          },
          {
            "date": "2024-02-16",
            "count": 10
          },
          {
            "date": "2024-03-02",
            "count": 1
          },
          {
            "date": "2024-03-22",
            "count": 1
          },
          {
            "date": "2024-03-25",
            "count": 1
          },
          {
            "date": "2024-04-04",
            "count": 1
          },
          {
            "date": "2024-04-05",
            "count": 1
          },
          {
            "date": "2024-04-27",
            "count": 1
          },
          {
            "date": "2024-06-13",
            "count": 1
          },
          {
            "date": "2024-06-28",
            "count": 1
          },
          {
            "date": "2024-07-05",
            "count": 1
          },
          {
            "date": "2024-07-10",
            "count": 1
          },
          {
            "date": "2024-07-15",
            "count": 1
          },
          {
            "date": "2024-08-10",
            "count": 1
          },
          {
            "date": "2024-08-16",
            "count": 1
          },
          {
            "date": "2024-08-22",
            "count": 1
          },
          {
            "date": "2024-09-14",
            "count": 1
          },
          {
            "date": "2024-12-05",
            "count": 1
          },
          {
            "date": "2024-12-16",
            "count": 1
          },
          {
            "date": "2024-12-18",
            "count": 1
          },
          {
            "date": "2024-12-22",
            "count": 1
          },
          {
            "date": "2025-01-17",
            "count": 1
          },
          {
            "date": "2025-02-20",
            "count": 1
          },
          {
            "date": "2025-04-05",
            "count": 1
          },
          {
            "date": "2025-05-09",
            "count": 1
          },
          {
            "date": "2025-05-16",
            "count": 1
          },
          {
            "date": "2025-07-09",
            "count": 1
          },
          {
            "date": "2025-07-18",
            "count": 1
          },
          {
            "date": "2025-07-25",
            "count": 1
          },
          {
            "date": "2025-08-05",
            "count": 1
          },
          {
            "date": "2025-08-07",
            "count": 1
          },
          {
            "date": "2025-09-15",
            "count": 1
          },
          {
            "date": "2025-10-17",
            "count": 1
          },
          {
            "date": "2025-11-03",
            "count": 1
          },
          {
            "date": "2025-12-01",
            "count": 1
          },
          {
            "date": "2025-12-10",
            "count": 1
          },
          {
            "date": "2025-12-28",
            "count": 1
          },
          {
            "date": "2026-01-10",
            "count": 2
          },
          {
            "date": "2026-01-31",
            "count": 1
          },
          {
            "date": "2026-02-22",
            "count": 1
          },
          {
            "date": "2026-03-02",
            "count": 1
          },
          {
            "date": "2026-03-23",
            "count": 1
          },
          {
            "date": "2026-04-15",
            "count": 1
          },
          {
            "date": "2026-04-16",
            "count": 1
          },
          {
            "date": "2026-04-28",
            "count": 1
          },
          {
            "date": "2026-05-13",
            "count": 1
          },
          {
            "date": "2026-05-18",
            "count": 1
          },
          {
            "date": "2026-05-22",
            "count": 1
          },
          {
            "date": "2026-05-27",
            "count": 1
          },
          {
            "date": "2026-06-07",
            "count": 1
          },
          {
            "date": "2026-06-16",
            "count": 1
          },
          {
            "date": "2026-07-08",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 110,
        "total_forks": 112
      },
      "star_history": {
        "days": [
          {
            "date": "2020-09-23",
            "count": 5
          },
          {
            "date": "2020-10-03",
            "count": 1
          },
          {
            "date": "2020-10-04",
            "count": 1
          },
          {
            "date": "2020-10-18",
            "count": 1
          },
          {
            "date": "2020-11-17",
            "count": 1
          },
          {
            "date": "2020-11-18",
            "count": 1
          },
          {
            "date": "2020-12-01",
            "count": 1
          },
          {
            "date": "2020-12-11",
            "count": 1
          },
          {
            "date": "2020-12-29",
            "count": 1
          },
          {
            "date": "2021-01-03",
            "count": 1
          },
          {
            "date": "2021-01-05",
            "count": 1
          },
          {
            "date": "2021-01-08",
            "count": 1
          },
          {
            "date": "2021-01-11",
            "count": 1
          },
          {
            "date": "2021-01-12",
            "count": 1
          },
          {
            "date": "2021-01-30",
            "count": 1
          },
          {
            "date": "2021-02-03",
            "count": 1
          },
          {
            "date": "2021-02-09",
            "count": 1
          },
          {
            "date": "2021-02-22",
            "count": 1
          },
          {
            "date": "2021-02-27",
            "count": 1
          },
          {
            "date": "2021-02-28",
            "count": 1
          },
          {
            "date": "2021-03-01",
            "count": 1
          },
          {
            "date": "2021-04-09",
            "count": 1
          },
          {
            "date": "2021-05-10",
            "count": 1
          },
          {
            "date": "2021-05-11",
            "count": 1
          },
          {
            "date": "2021-05-27",
            "count": 1
          },
          {
            "date": "2021-05-30",
            "count": 1
          },
          {
            "date": "2021-06-03",
            "count": 1
          },
          {
            "date": "2021-06-10",
            "count": 1
          },
          {
            "date": "2021-06-24",
            "count": 1
          },
          {
            "date": "2021-07-22",
            "count": 1
          },
          {
            "date": "2021-08-09",
            "count": 1
          },
          {
            "date": "2021-10-02",
            "count": 1
          },
          {
            "date": "2021-10-18",
            "count": 1
          },
          {
            "date": "2021-10-29",
            "count": 1
          },
          {
            "date": "2021-11-11",
            "count": 1
          },
          {
            "date": "2021-11-28",
            "count": 2
          },
          {
            "date": "2022-01-24",
            "count": 1
          },
          {
            "date": "2022-02-02",
            "count": 1
          },
          {
            "date": "2022-02-04",
            "count": 1
          },
          {
            "date": "2022-03-01",
            "count": 1
          },
          {
            "date": "2022-03-10",
            "count": 1
          },
          {
            "date": "2022-03-15",
            "count": 1
          },
          {
            "date": "2022-03-17",
            "count": 1
          },
          {
            "date": "2022-03-20",
            "count": 1
          },
          {
            "date": "2022-03-22",
            "count": 1
          },
          {
            "date": "2022-04-13",
            "count": 2
          },
          {
            "date": "2022-04-25",
            "count": 1
          },
          {
            "date": "2022-04-30",
            "count": 1
          },
          {
            "date": "2022-05-09",
            "count": 1
          },
          {
            "date": "2022-05-13",
            "count": 1
          },
          {
            "date": "2022-05-20",
            "count": 1
          },
          {
            "date": "2022-05-31",
            "count": 1
          },
          {
            "date": "2022-06-02",
            "count": 1
          },
          {
            "date": "2022-07-03",
            "count": 1
          },
          {
            "date": "2022-07-11",
            "count": 1
          },
          {
            "date": "2022-07-28",
            "count": 1
          },
          {
            "date": "2022-08-16",
            "count": 1
          },
          {
            "date": "2022-09-01",
            "count": 1
          },
          {
            "date": "2022-09-05",
            "count": 1
          },
          {
            "date": "2022-09-16",
            "count": 1
          },
          {
            "date": "2022-09-28",
            "count": 1
          },
          {
            "date": "2022-10-28",
            "count": 1
          },
          {
            "date": "2022-10-30",
            "count": 1
          },
          {
            "date": "2022-11-02",
            "count": 1
          },
          {
            "date": "2022-11-10",
            "count": 1
          },
          {
            "date": "2023-01-29",
            "count": 1
          },
          {
            "date": "2023-03-04",
            "count": 1
          },
          {
            "date": "2023-03-23",
            "count": 1
          },
          {
            "date": "2023-03-29",
            "count": 1
          },
          {
            "date": "2023-03-31",
            "count": 1
          },
          {
            "date": "2023-04-13",
            "count": 1
          },
          {
            "date": "2023-05-13",
            "count": 1
          },
          {
            "date": "2023-05-27",
            "count": 1
          },
          {
            "date": "2023-06-13",
            "count": 1
          },
          {
            "date": "2023-07-27",
            "count": 1
          },
          {
            "date": "2023-07-30",
            "count": 1
          },
          {
            "date": "2023-08-01",
            "count": 1
          },
          {
            "date": "2023-09-14",
            "count": 1
          },
          {
            "date": "2023-09-18",
            "count": 1
          },
          {
            "date": "2023-09-30",
            "count": 1
          },
          {
            "date": "2023-10-02",
            "count": 1
          },
          {
            "date": "2023-10-30",
            "count": 1
          },
          {
            "date": "2023-11-08",
            "count": 1
          },
          {
            "date": "2023-12-07",
            "count": 1
          },
          {
            "date": "2023-12-09",
            "count": 1
          },
          {
            "date": "2023-12-27",
            "count": 1
          },
          {
            "date": "2024-01-15",
            "count": 1
          },
          {
            "date": "2024-01-29",
            "count": 1
          },
          {
            "date": "2024-02-02",
            "count": 1
          },
          {
            "date": "2024-02-07",
            "count": 1
          },
          {
            "date": "2024-02-10",
            "count": 1
          },
          {
            "date": "2024-02-14",
            "count": 1
          },
          {
            "date": "2024-02-16",
            "count": 1
          },
          {
            "date": "2024-02-17",
            "count": 1
          },
          {
            "date": "2024-02-20",
            "count": 1
          },
          {
            "date": "2024-02-23",
            "count": 1
          },
          {
            "date": "2024-02-25",
            "count": 1
          },
          {
            "date": "2024-03-02",
            "count": 1
          },
          {
            "date": "2024-03-26",
            "count": 1
          },
          {
            "date": "2024-04-24",
            "count": 1
          },
          {
            "date": "2024-05-24",
            "count": 1
          },
          {
            "date": "2024-05-28",
            "count": 1
          },
          {
            "date": "2024-06-08",
            "count": 1
          },
          {
            "date": "2024-06-28",
            "count": 1
          },
          {
            "date": "2024-07-09",
            "count": 1
          },
          {
            "date": "2024-07-10",
            "count": 1
          },
          {
            "date": "2024-07-12",
            "count": 1
          },
          {
            "date": "2024-07-27",
            "count": 1
          },
          {
            "date": "2024-09-16",
            "count": 1
          },
          {
            "date": "2024-09-25",
            "count": 1
          },
          {
            "date": "2024-10-03",
            "count": 2
          },
          {
            "date": "2024-10-22",
            "count": 1
          },
          {
            "date": "2024-11-06",
            "count": 1
          },
          {
            "date": "2024-12-11",
            "count": 1
          },
          {
            "date": "2024-12-16",
            "count": 1
          },
          {
            "date": "2024-12-22",
            "count": 1
          },
          {
            "date": "2025-01-12",
            "count": 1
          },
          {
            "date": "2025-01-17",
            "count": 1
          },
          {
            "date": "2025-01-18",
            "count": 1
          },
          {
            "date": "2025-01-22",
            "count": 1
          },
          {
            "date": "2025-01-26",
            "count": 2
          },
          {
            "date": "2025-01-29",
            "count": 1
          },
          {
            "date": "2025-02-07",
            "count": 1
          },
          {
            "date": "2025-03-16",
            "count": 1
          },
          {
            "date": "2025-04-14",
            "count": 1
          },
          {
            "date": "2025-04-27",
            "count": 1
          },
          {
            "date": "2025-05-09",
            "count": 1
          },
          {
            "date": "2025-05-12",
            "count": 1
          },
          {
            "date": "2025-05-20",
            "count": 1
          },
          {
            "date": "2025-07-11",
            "count": 1
          },
          {
            "date": "2025-07-30",
            "count": 1
          },
          {
            "date": "2025-08-03",
            "count": 1
          },
          {
            "date": "2025-10-06",
            "count": 1
          },
          {
            "date": "2025-10-09",
            "count": 1
          },
          {
            "date": "2025-10-12",
            "count": 1
          },
          {
            "date": "2025-11-01",
            "count": 1
          },
          {
            "date": "2025-11-16",
            "count": 1
          },
          {
            "date": "2026-01-11",
            "count": 1
          },
          {
            "date": "2026-03-08",
            "count": 1
          },
          {
            "date": "2026-03-21",
            "count": 1
          },
          {
            "date": "2026-04-14",
            "count": 1
          },
          {
            "date": "2026-04-17",
            "count": 1
          },
          {
            "date": "2026-07-02",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 151,
        "total_stars": 151
      },
      "open_issues_and_prs": 219
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "contracts/tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 121545,
      "source_files_sampled": 453,
      "oversized_source_files": 8,
      "agent_instruction_files": [
        "AGENTS.md",
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 8324
    },
    "dependencies": {
      "manifests": [
        "contracts/package.json",
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@chainlink/contracts-ccip",
          "manifest": "contracts/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.2.1"
        },
        {
          "name": "@chainsafe/bls",
          "manifest": "contracts/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.2.0"
        },
        {
          "name": "@lodestar/api",
          "manifest": "contracts/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.41.0"
        },
        {
          "name": "@lodestar/config",
          "manifest": "contracts/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.41.0"
        },
        {
          "name": "@lodestar/params",
          "manifest": "contracts/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.41.0"
        },
        {
          "name": "@lodestar/state-transition",
          "manifest": "contracts/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.41.0"
        },
        {
          "name": "@lodestar/types",
          "manifest": "contracts/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.41.0"
        },
        {
          "name": "@lodestar/utils",
          "manifest": "contracts/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.41.0"
        },
        {
          "name": "@talos/client",
          "manifest": "contracts/package.json",
          "ecosystem": "npm",
          "version_constraint": "github:oplabs/talos#8f15dbbdc96a4d3cabf932d41e016779c0946266&path:packages/client"
        },
        {
          "name": "@types/pg",
          "manifest": "contracts/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.20.0"
        },
        {
          "name": "origin-morpho-utils",
          "manifest": "contracts/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.1.1"
        },
        {
          "name": "pg",
          "manifest": "contracts/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.20.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": 30,
        "merged_prs": 1869,
        "open_issues": 189,
        "closed_ratio": 0.747,
        "closed_issues": 559,
        "closed_unmerged_prs": 272
      },
      "bus_factor": 2,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "sparrowDom",
          "commits": 1609,
          "avatar_url": "https://avatars.githubusercontent.com/u/579910?v=4"
        },
        {
          "type": "User",
          "login": "tomlinton",
          "commits": 542,
          "avatar_url": "https://avatars.githubusercontent.com/u/489202?v=4"
        },
        {
          "type": "User",
          "login": "shahthepro",
          "commits": 390,
          "avatar_url": "https://avatars.githubusercontent.com/u/10547529?v=4"
        },
        {
          "type": "User",
          "login": "DanielVF",
          "commits": 275,
          "avatar_url": "https://avatars.githubusercontent.com/u/837?v=4"
        },
        {
          "type": "User",
          "login": "naddison36",
          "commits": 229,
          "avatar_url": "https://avatars.githubusercontent.com/u/6491112?v=4"
        },
        {
          "type": "User",
          "login": "micahalcorn",
          "commits": 199,
          "avatar_url": "https://avatars.githubusercontent.com/u/273937?v=4"
        },
        {
          "type": "User",
          "login": "crazybuster",
          "commits": 114,
          "avatar_url": "https://avatars.githubusercontent.com/u/4496236?v=4"
        },
        {
          "type": "User",
          "login": "clement-ux",
          "commits": 86,
          "avatar_url": "https://avatars.githubusercontent.com/u/55331875?v=4"
        },
        {
          "type": "User",
          "login": "rolandpo",
          "commits": 61,
          "avatar_url": "https://avatars.githubusercontent.com/u/62400812?v=4"
        },
        {
          "type": "User",
          "login": "snyk-bot",
          "commits": 45,
          "avatar_url": "https://avatars.githubusercontent.com/u/19733683?v=4"
        }
      ],
      "contributors_sampled": 48,
      "top_contributor_share": 0.443
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "abi.yml",
        "aws-deployment.yml",
        "defi.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [
        ".eslintrc.js"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "pnpm-lock.yaml",
        "yarn.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 6,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 9,
            "reason": "29 out of 30 merged PRs checked by a CI test -- score normalized to 9",
            "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": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 8 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 2 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": 3,
            "reason": "dependency not pinned by hash detected -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 10,
            "reason": "GitHub workflow tokens follow principle of least privilege",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "171 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "07a7fcb052d715409014dd69e69e3c680ee8ae47",
        "ran_at": "2026-07-22T03:00:04Z",
        "aggregate_score": 7.3,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-20T11:05:11Z",
      "oldest_open_prs": [
        {
          "number": 561,
          "created_at": "2021-02-15T16:20:22Z",
          "last_comment_at": "2023-07-07T10:51:45Z",
          "last_comment_author": "sparrowDom"
        },
        {
          "number": 1203,
          "created_at": "2022-12-15T19:52:18Z",
          "last_comment_at": "2023-07-06T15:34:35Z",
          "last_comment_author": "sparrowDom"
        },
        {
          "number": 1239,
          "created_at": "2023-02-06T13:24:23Z",
          "last_comment_at": "2023-07-06T12:52:24Z",
          "last_comment_author": "sparrowDom"
        },
        {
          "number": 1515,
          "created_at": "2023-05-18T20:39:34Z",
          "last_comment_at": "2023-07-10T09:45:20Z",
          "last_comment_author": "sparrowDom"
        },
        {
          "number": 1680,
          "created_at": "2023-07-04T16:11:08Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1826,
          "created_at": "2023-09-21T20:57:26Z",
          "last_comment_at": "2023-09-22T15:23:46Z",
          "last_comment_author": "DanielVF"
        },
        {
          "number": 1936,
          "created_at": "2023-11-19T23:22:40Z",
          "last_comment_at": "2023-11-27T12:34:27Z",
          "last_comment_author": "naddison36"
        },
        {
          "number": 1943,
          "created_at": "2023-11-27T10:41:44Z",
          "last_comment_at": "2023-11-28T22:17:09Z",
          "last_comment_author": "sparrowDom"
        },
        {
          "number": 1984,
          "created_at": "2024-01-30T15:02:28Z",
          "last_comment_at": "2024-01-30T15:03:05Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 2011,
          "created_at": "2024-03-27T16:41:01Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2095,
          "created_at": "2024-06-07T22:47:44Z",
          "last_comment_at": "2024-06-07T23:08:18Z",
          "last_comment_author": "sparrowDom"
        },
        {
          "number": 2098,
          "created_at": "2024-06-11T14:30:40Z",
          "last_comment_at": "2024-06-14T20:47:29Z",
          "last_comment_author": "codecov"
        },
        {
          "number": 2233,
          "created_at": "2024-09-14T10:10:15Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2283,
          "created_at": "2024-10-21T19:56:23Z",
          "last_comment_at": "2024-10-21T20:04:35Z",
          "last_comment_author": "codecov"
        },
        {
          "number": 2593,
          "created_at": "2025-07-22T08:34:37Z",
          "last_comment_at": "2025-07-22T08:46:17Z",
          "last_comment_author": "codecov"
        },
        {
          "number": 2623,
          "created_at": "2025-08-18T07:13:02Z",
          "last_comment_at": "2025-08-18T07:18:19Z",
          "last_comment_author": "codecov"
        },
        {
          "number": 2773,
          "created_at": "2026-01-29T14:04:39Z",
          "last_comment_at": "2026-01-29T14:09:47Z",
          "last_comment_author": "codecov"
        },
        {
          "number": 2815,
          "created_at": "2026-02-26T12:16:58Z",
          "last_comment_at": "2026-02-26T12:22:05Z",
          "last_comment_author": "codecov"
        },
        {
          "number": 2824,
          "created_at": "2026-03-03T15:39:17Z",
          "last_comment_at": "2026-03-03T15:47:16Z",
          "last_comment_author": "codecov"
        },
        {
          "number": 2848,
          "created_at": "2026-03-20T13:24:09Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-21T16:36:00Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 14,
          "created_at": "2020-08-07T19:06:19Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 15,
          "created_at": "2020-08-10T15:51:58Z",
          "last_comment_at": "2022-01-13T21:19:18Z",
          "last_comment_author": "joshfraser"
        },
        {
          "number": 22,
          "created_at": "2020-08-10T20:43:03Z",
          "last_comment_at": "2023-05-08T13:26:36Z",
          "last_comment_author": "rolandpo"
        },
        {
          "number": 53,
          "created_at": "2020-08-17T20:52:00Z",
          "last_comment_at": "2022-05-20T15:30:21Z",
          "last_comment_author": "micahalcorn"
        },
        {
          "number": 59,
          "created_at": "2020-08-19T01:53:47Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 76,
          "created_at": "2020-08-23T02:18:05Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 112,
          "created_at": "2020-08-28T18:40:25Z",
          "last_comment_at": "2021-03-11T04:55:11Z",
          "last_comment_author": "icyage"
        },
        {
          "number": 160,
          "created_at": "2020-09-11T07:00:13Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 227,
          "created_at": "2020-09-22T00:29:08Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 252,
          "created_at": "2020-09-24T21:46:43Z",
          "last_comment_at": "2020-09-25T01:57:56Z",
          "last_comment_author": "tomlinton"
        },
        {
          "number": 301,
          "created_at": "2020-10-09T01:37:05Z",
          "last_comment_at": "2020-12-22T18:53:51Z",
          "last_comment_author": "nickgeoca"
        },
        {
          "number": 312,
          "created_at": "2020-10-13T19:16:01Z",
          "last_comment_at": "2021-05-20T07:34:13Z",
          "last_comment_author": "tomlinton"
        },
        {
          "number": 313,
          "created_at": "2020-10-13T20:23:44Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 318,
          "created_at": "2020-10-14T12:12:11Z",
          "last_comment_at": "2020-12-05T04:50:05Z",
          "last_comment_author": "franckc"
        },
        {
          "number": 365,
          "created_at": "2020-11-13T00:26:02Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 434,
          "created_at": "2020-12-16T22:16:02Z",
          "last_comment_at": "2021-01-21T20:15:00Z",
          "last_comment_author": "nick"
        },
        {
          "number": 445,
          "created_at": "2020-12-18T21:21:32Z",
          "last_comment_at": "2021-01-08T23:13:56Z",
          "last_comment_author": "franckc"
        },
        {
          "number": 461,
          "created_at": "2020-12-24T16:24:53Z",
          "last_comment_at": "2021-08-13T05:17:43Z",
          "last_comment_author": "micahalcorn"
        },
        {
          "number": 479,
          "created_at": "2021-01-06T01:06:12Z",
          "last_comment_at": "2021-09-10T21:36:54Z",
          "last_comment_author": "micahalcorn"
        },
        {
          "number": 483,
          "created_at": "2021-01-06T14:55:57Z",
          "last_comment_at": "2021-11-21T09:06:52Z",
          "last_comment_author": "sparrowDom"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/OriginProtocol/origin-dollar",
    "host": "github.com",
    "name": "origin-dollar",
    "owner": "OriginProtocol"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 73,
      "inputs": {
        "security": 73,
        "vitality": 79,
        "community": 59,
        "governance": 71,
        "engineering": 79
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 79,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 97,
            "inputs": {
              "commits_last_year": 188,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 48
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "48/52 weeks with commits",
                "points": 33.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 48
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "188 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 188
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "moderate",
            "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": 52,
            "inputs": {
              "releases_count": 15,
              "latest_release_tag": "v0.1.8",
              "releases_from_tags": false,
              "days_since_latest_release": 1082,
              "mean_days_between_releases": 101.3
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "15 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 15
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 1082 days ago",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 1082
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~101.3 days",
                "points": 19.8,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 101.3
                    }
                  }
                ],
                "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": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 1,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 1 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 59,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 61,
            "inputs": {
              "forks": 112,
              "stars": 151,
              "watchers": 37,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "151 stars",
                "points": 35.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 151
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "112 forks",
                "points": 17,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 112
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "37 watchers",
                "points": 8.7,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 37
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 57,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 71,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 61,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 48,
              "top_contributor_share": 0.443
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 44% of commits",
                "points": 12.5,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 44
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "48 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 48
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 8 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 83,
            "inputs": {
              "merged_prs": 1869,
              "open_issues": 189,
              "closed_issues": 559,
              "issue_closed_ratio": 0.747,
              "closed_unmerged_prs": 272
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "75% of issues closed",
                "points": 34.9,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 75
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "1869/2141 decided PRs merged",
                "points": 33.4,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 1869,
                      "decided": 2141
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "followers": 103,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "OriginProtocol",
              "public_repos": 105,
              "account_age_days": 3276
            },
            "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": "103 followers of OriginProtocol",
                "points": 14.5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 103,
                      "login": "OriginProtocol"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "105 public repos, account ~8 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 105
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 8
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 79,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 82,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": ".eslintrc.js",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.js"
                    }
                  }
                ],
                "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": "29 out of 30 merged PRs checked by a CI test -- score normalized to 9",
                "points": 18,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [
                "defi",
                "ethereum",
                "web3"
              ],
              "has_wiki": true,
              "homepage": "https://originprotocol.com",
              "has_readme": true,
              "has_docs_dir": false,
              "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://originprotocol.com",
                "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": "3 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "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": "good",
        "name": "Security",
        "value": 73,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "good",
            "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": 73,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 7.3
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "29 out of 30 merged PRs checked by a CI test -- score normalized to 9",
                "points": 2.2,
                "status": "partial",
                "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": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 8 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 2 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 3",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "GitHub workflow tokens follow principle of least privilege",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "171 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 10
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 76,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.95,
              "agent_instruction_files": [
                "AGENTS.md",
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 8324
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md, CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md, CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "95 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 95,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 67,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "pnpm-lock.yaml",
                "yarn.lock"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "contracts/tsconfig.json"
              ],
              "agent_commit_share": 0.06,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": ".eslintrc.js",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.js"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "contracts/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "contracts/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": "6 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 6,
                      "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 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "good",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "primary_language": "JavaScript",
              "largest_source_bytes": 121545,
              "source_files_sampled": 453,
              "oversized_source_files": 8
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "JavaScript with type-check config (contracts/tsconfig.json)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "contracts/tsconfig.json",
                      "language": "JavaScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "8/453 source files over 60KB",
                "points": 54,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 453,
                      "oversized": 8
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Could not fetch npm package 'origin-dollar' from its registry",
    "Could not fetch npm package 'origin-defi-contracts' 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-22T03:00:40.094978Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/o/OriginProtocol/origin-dollar.svg",
  "full_name": "OriginProtocol/origin-dollar",
  "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.26.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistiken.