Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-28 03:32 UTC

agents-squads / squads-cli

CLI for managing AI agent squads. Status, memory, goals, feedback, and dashboard for your autonomous agents.

TypeScriptMIT★ 49 Sterne⑂ 2 Forksseit Dez. 2025Auf GitHub ansehen ↗

agents-squads/squads-cli erreicht einen Gesundheitsindex von 68 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Engineering Quality (86/100) ab, am schwächsten bei Sustainability & Governance (52/100). Zuletzt vor 2 Tagen aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

68
gesamt / 100
Mittel

Software-Gesundheitsindex

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

68
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

Agents SquadsOrganisation
4 Follower3 öffentliche Reposseit Dez. 2025

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

Paket-Ökosysteme

Metriken nach Kategorie

Vitalität

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

83Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 2 Tagen
11.1/36Commit-Rhythmus — 16/52 Wochen mit Commits
18/18Commit-Volumen — 313 Commits im letzten Jahr
6/10OpenSSF Scorecard: Maintained — 8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6
Verwendete Eingangsdaten
commits_last_year313
human_commit_share0,91
days_since_last_push2
active_weeks_last_year16

Release-Disziplin

100Exzellent
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 12 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 20 Tagen
27/27Release-Rhythmus — ein Release etwa alle 11,2 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count12
latest_release_tagv0.9.0
releases_from_tagsnein
days_since_latest_release20
mean_days_between_releases11,2
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?

56Mittel · 18 % des Gesamtindex
Wie die Bewertung erfolgt
27.3/60Stars — 49 Stars
0/25Forks — 2 Forks
0/15Watcher — 1 Watcher
Verwendete Eingangsdaten
forks2
stars49
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
18/18CONTRIBUTING-Leitfaden
13.5/13.5Verhaltenskodex
0/7.2Issue-Vorlage
6.3/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingja
has_issue_templatenein
has_code_of_conductja
has_pull_request_templateja
Wie die Bewertung erfolgt
40.9/80Downloads pro Monat — 1.176 Downloads/Monat über npm
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packagessquads-cli
dependents
ecosystemsnpm
total_downloads
monthly_downloads1.176
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

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

52Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 100 % der Commits
1.4/13.5Breite der Beitragenden — 1 Beitragende
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Verwendete Eingangsdaten
bus_factor1
contributors_sampled1
top_contributor_share1
Wie die Bewertung erfolgt
42.6/46.8Issue-Lösungsquote — 91 % der Issues geschlossen
31.3/38.3PR-Annahme — 464/567 entschiedene PRs gemergt
1.5/15OpenSSF Scorecard: Code-Review — Found 3/21 approved changesets -- score normalized to 1
Verwendete Eingangsdaten
merged_prs464
open_issues56
closed_issues578
issue_closed_ratio0,912
closed_unmerged_prs103
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
5/25Reichweite des Inhabers — 4 Follower von agents-squads
5.6/25Kontohistorie — 3 öffentliche Repos, Kontoalter ca. 0 Jahre
Verwendete Eingangsdaten
followers4
owner_typeOrganization
is_verified
owner_loginagents-squads
public_repos3
account_age_days229

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 1 Paket(e) auf npm
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 20 Tagen
20/20Versionshistorie — 29 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagessquads-cli
ecosystemsnpm
any_deprecatednein
min_days_since_publish20

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

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

Dokumentation

90Exzellent
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://agents-squads.com
10/10Repository-Beschreibung
10/10Topics — 15 Topics
0/10Wiki
Verwendete Eingangsdaten
topicsagent-framework, ai-agents, cli, developer-tools, multi-agent, orchestration, persistent-memory, agentic-ai, ai-workforce, anthropic, autonomous-agents, claude, llm, self-improving-ai, typescript
has_wikinein
homepagehttps://agents-squads.com
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

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

65Mittel · 16 % des Gesamtindex
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
6/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 22 out of 22 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0.8/7.5Code-Review — Found 3/21 approved changesets -- score normalized to 1
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
4.5/7.5Maintained — 8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6
5/5Packaging — packaging workflow detected
2/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 4
5/5SAST — SAST tool is run on all commits
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
3.8/7.5Vulnerabilities — 5 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate5,6
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): signed_releases. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
25/25Indirekte Abhängigkeiten ohne bekannte Advisories — keine indirekte Abhängigkeit trägt ein bekanntes Advisory
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories0
affected_packages0
assessed_packages97
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. Abgeglichen wurde die Laufzeit-Abhängigkeitshülle von npm:squads-cli@0.9.0 — das, was die Installation des veröffentlichten Pakets nach sich zieht — mit 97 Paketen. Erreichbarkeit wird nicht analysiert.

AI Readiness

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

74Gut · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — AGENTS.md, CLAUDE.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 88 von 91 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,967
agent_instruction_filesAGENTS.md, CLAUDE.md
agent_instruction_max_bytes4.781
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — eslint.config.js
11/11Statische Typprüfung — tsconfig.json
10/10Reproduzierbare Umgebung — Dockerfile, lockfile
10/10Belegte Agentenpraxis — 79 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
4/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 4
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilespackage-lock.json
has_dockerfileja
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_configja
typecheck_configstsconfig.json
agent_commit_share0,79
toolchain_manifests
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — TypeScript (statisch typisiert)
54.6/55Handhabbare Dateigrößen — 2/289 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageTypeScript
largest_source_bytes120.426
source_files_sampled289
oversized_source_files2
Wie die Bewertung erfolgt
40/40API-Schema (OpenAPI/GraphQL/proto) — openapi/openapi.json
0/20MCP-Server
0/40Lauffähige Beispiele
Verwendete Eingangsdaten
example_dirs
has_mcp_signalnein
api_schema_filesopenapi/openapi.json

Eckdaten

49GitHub-Sterne
1Mitwirkende
313Commits, letzte 12 Monate
2Tage seit letztem Push
12Releases
1Bus-Faktor
56offene Issues
npmPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 2 ⇿
0Sterne
2Forks
1Releases

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.

111222212026-032026-032026-03
Major 0Minor 0Patch 1
OpenSSF Scorecard 5.6 / 10
5.6Gesamtwert

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-28 03:32 UTC

10Binary-Artifactsno binaries found in the repo
8Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests22 out of 22 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
1Code-ReviewFound 3/21 approved changesets -- score normalized to 1
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
6Maintained8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6
10Packagingpackaging workflow detected
4Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 4
10SASTSAST tool is run on all commits
10Security-Policysecurity policy file detected
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
5Vulnerabilities5 existing vulnerabilities detected
Direkte Abhängigkeiten 10
RegistryPaketVersionsvorgabeManifest
npm@anthropic-ai/sdk^0.71.2package.json
npmchalk^5.3.0package.json
npmchrono-node^2.9.0package.json
npmcommander^12.1.0package.json
npmdotenv^17.2.3package.json
npmgray-matter^4.0.3package.json
npminquirer^9.2.12package.json
npmminimatch^10.2.1package.json
npmopen^11.0.0package.json
npmora^8.0.1package.json
Alle Abhängigkeiten 474

Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 17 direkte und 457 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.

RegistryPaketVersionBeziehung
npm@anthropic-ai/sdk0.71.2direkt
npmchalk4.1.2direkt
npmchalk5.6.2direkt
npmchrono-node2.9.0direkt
npmcommander12.1.0direkt
npmcommander14.0.3direkt
npmcommander4.1.1direkt
npmdotenv17.4.2direkt
npmdotenv8.6.0direkt
npmgray-matter4.0.3direkt
npminquirer9.3.8direkt
npmminimatch10.2.5direkt
npmminimatch3.1.5direkt
npmminimatch9.0.9direkt
npmopen11.0.0direkt
npmora5.4.1direkt
npmora8.2.0direkt
npm@babel/helper-string-parser7.29.7indirekt
npm@babel/helper-validator-identifier7.29.7indirekt
npm@babel/parser7.29.7indirekt
npm@babel/runtime7.28.4indirekt
npm@babel/types7.29.7indirekt
npm@bcoe/v8-coverage1.0.2indirekt
npm@changesets/apply-release-plan7.1.0indirekt
npm@changesets/assemble-release-plan6.0.9indirekt
npm@changesets/changelog-git0.2.1indirekt
npm@changesets/changelog-github0.6.0indirekt
npm@changesets/cli2.30.0indirekt
npm@changesets/config3.1.3indirekt
npm@changesets/errors0.2.0indirekt
npm@changesets/get-dependents-graph2.1.3indirekt
npm@changesets/get-github-info0.8.0indirekt
npm@changesets/get-release-plan4.0.15indirekt
npm@changesets/get-version-range-type0.4.0indirekt
npm@changesets/git3.0.4indirekt
npm@changesets/logger0.1.1indirekt
npm@changesets/parse0.4.3indirekt
npm@changesets/pre2.0.2indirekt
npm@changesets/read0.6.7indirekt
npm@changesets/should-skip-package0.1.2indirekt
npm@changesets/types4.1.0indirekt
npm@changesets/types6.1.0indirekt
npm@changesets/write0.4.0indirekt
npm@emnapi/core1.10.0indirekt
npm@emnapi/runtime1.10.0indirekt
npm@emnapi/wasi-threads1.2.1indirekt
npm@esbuild/aix-ppc640.27.2indirekt
npm@esbuild/android-arm0.27.2indirekt
npm@esbuild/android-arm640.27.2indirekt
npm@esbuild/android-x640.27.2indirekt
npm@esbuild/darwin-arm640.27.2indirekt
npm@esbuild/darwin-x640.27.2indirekt
npm@esbuild/freebsd-arm640.27.2indirekt
npm@esbuild/freebsd-x640.27.2indirekt
npm@esbuild/linux-arm0.27.2indirekt
npm@esbuild/linux-arm640.27.2indirekt
npm@esbuild/linux-ia320.27.2indirekt
npm@esbuild/linux-loong640.27.2indirekt
npm@esbuild/linux-mips64el0.27.2indirekt
npm@esbuild/linux-ppc640.27.2indirekt
npm@esbuild/linux-riscv640.27.2indirekt
npm@esbuild/linux-s390x0.27.2indirekt
npm@esbuild/linux-x640.27.2indirekt
npm@esbuild/netbsd-arm640.27.2indirekt
npm@esbuild/netbsd-x640.27.2indirekt
npm@esbuild/openbsd-arm640.27.2indirekt
npm@esbuild/openbsd-x640.27.2indirekt
npm@esbuild/openharmony-arm640.27.2indirekt
npm@esbuild/sunos-x640.27.2indirekt
npm@esbuild/win32-arm640.27.2indirekt
npm@esbuild/win32-ia320.27.2indirekt
npm@esbuild/win32-x640.27.2indirekt
npm@eslint-community/eslint-utils4.9.1indirekt
npm@eslint-community/regexpp4.12.2indirekt
npm@eslint/config-array0.21.1indirekt
npm@eslint/config-helpers0.4.2indirekt
npm@eslint/core0.17.0indirekt
npm@eslint/eslintrc3.3.3indirekt
npm@eslint/js9.39.2indirekt
npm@eslint/object-schema2.1.7indirekt
npm@eslint/plugin-kit0.4.1indirekt
npm@hey-api/codegen-core0.8.2indirekt
npm@hey-api/json-schema-ref-parser1.4.2indirekt
npm@hey-api/openapi-ts0.97.3indirekt
npm@hey-api/shared0.4.5indirekt
npm@hey-api/spec-types0.2.0indirekt
npm@hey-api/types0.1.4indirekt
npm@humanfs/core0.19.1indirekt
npm@humanfs/node0.16.7indirekt
npm@humanwhocodes/module-importer1.0.1indirekt
npm@humanwhocodes/retry0.4.3indirekt
npm@inquirer/external-editor1.0.3indirekt
npm@inquirer/figures1.0.15indirekt
npm@jridgewell/gen-mapping0.3.13indirekt
npm@jridgewell/resolve-uri3.1.2indirekt
npm@jridgewell/sourcemap-codec1.5.5indirekt
npm@jridgewell/trace-mapping0.3.31indirekt
npm@jsdevtools/ono7.1.3indirekt
npm@lukeed/ms2.0.2indirekt
npm@manypkg/find-root1.1.0indirekt
npm@manypkg/get-packages1.1.3indirekt
npm@napi-rs/wasm-runtime1.1.4indirekt
npm@nodelib/fs.scandir2.1.5indirekt
npm@nodelib/fs.stat2.0.5indirekt
npm@nodelib/fs.walk1.2.8indirekt
npm@oxc-project/types0.133.0indirekt
npm@rolldown/binding-android-arm641.0.3indirekt
npm@rolldown/binding-darwin-arm641.0.3indirekt
npm@rolldown/binding-darwin-x641.0.3indirekt
npm@rolldown/binding-freebsd-x641.0.3indirekt
npm@rolldown/binding-linux-arm-gnueabihf1.0.3indirekt
npm@rolldown/binding-linux-arm64-gnu1.0.3indirekt
npm@rolldown/binding-linux-arm64-musl1.0.3indirekt
npm@rolldown/binding-linux-ppc64-gnu1.0.3indirekt
npm@rolldown/binding-linux-s390x-gnu1.0.3indirekt
npm@rolldown/binding-linux-x64-gnu1.0.3indirekt
npm@rolldown/binding-linux-x64-musl1.0.3indirekt
npm@rolldown/binding-openharmony-arm641.0.3indirekt
npm@rolldown/binding-wasm32-wasi1.0.3indirekt
npm@rolldown/binding-win32-arm64-msvc1.0.3indirekt
npm@rolldown/binding-win32-x64-msvc1.0.3indirekt
npm@rolldown/pluginutils1.0.1indirekt
npm@rollup/rollup-android-arm-eabi4.61.1indirekt
npm@rollup/rollup-android-arm644.61.1indirekt
npm@rollup/rollup-darwin-arm644.61.1indirekt
npm@rollup/rollup-darwin-x644.61.1indirekt
npm@rollup/rollup-freebsd-arm644.61.1indirekt
npm@rollup/rollup-freebsd-x644.61.1indirekt
npm@rollup/rollup-linux-arm-gnueabihf4.61.1indirekt
npm@rollup/rollup-linux-arm-musleabihf4.61.1indirekt
npm@rollup/rollup-linux-arm64-gnu4.61.1indirekt
npm@rollup/rollup-linux-arm64-musl4.61.1indirekt
npm@rollup/rollup-linux-loong64-gnu4.61.1indirekt
npm@rollup/rollup-linux-loong64-musl4.61.1indirekt
npm@rollup/rollup-linux-ppc64-gnu4.61.1indirekt
npm@rollup/rollup-linux-ppc64-musl4.61.1indirekt
npm@rollup/rollup-linux-riscv64-gnu4.61.1indirekt
npm@rollup/rollup-linux-riscv64-musl4.61.1indirekt
npm@rollup/rollup-linux-s390x-gnu4.61.1indirekt
npm@rollup/rollup-linux-x64-gnu4.61.1indirekt
npm@rollup/rollup-linux-x64-musl4.61.1indirekt
npm@rollup/rollup-openbsd-x644.61.1indirekt
npm@rollup/rollup-openharmony-arm644.61.1indirekt
npm@rollup/rollup-win32-arm64-msvc4.61.1indirekt
npm@rollup/rollup-win32-ia32-msvc4.61.1indirekt
npm@rollup/rollup-win32-x64-gnu4.61.1indirekt
npm@rollup/rollup-win32-x64-msvc4.61.1indirekt
npm@standard-schema/spec1.1.0indirekt
npm@tybys/wasm-util0.10.2indirekt
npm@types/chai5.2.3indirekt
npm@types/deep-eql4.0.2indirekt
npm@types/estree1.0.9indirekt
npm@types/json-schema7.0.15indirekt
npm@types/node12.20.55indirekt
npm@types/node20.19.27indirekt
npm@typescript-eslint/eslint-plugin8.56.0indirekt
npm@typescript-eslint/parser8.56.0indirekt
npm@typescript-eslint/project-service8.56.0indirekt
npm@typescript-eslint/scope-manager8.56.0indirekt
npm@typescript-eslint/tsconfig-utils8.56.0indirekt
npm@typescript-eslint/type-utils8.56.0indirekt
npm@typescript-eslint/types8.56.0indirekt
npm@typescript-eslint/typescript-estree8.56.0indirekt
npm@typescript-eslint/utils8.56.0indirekt
npm@typescript-eslint/visitor-keys8.56.0indirekt
npm@vitest/coverage-v84.1.8indirekt
npm@vitest/expect4.1.8indirekt
npm@vitest/mocker4.1.8indirekt
npm@vitest/pretty-format4.1.8indirekt
npm@vitest/runner4.1.8indirekt
npm@vitest/snapshot4.1.8indirekt
npm@vitest/spy4.1.8indirekt
npm@vitest/utils4.1.8indirekt
npmacorn8.15.0indirekt
npmacorn-jsx5.3.2indirekt
npmajv6.15.0indirekt
npmansi-colors4.1.3indirekt
npmansi-escapes4.3.2indirekt
npmansi-regex5.0.1indirekt
npmansi-regex6.2.2indirekt
npmansi-styles4.3.0indirekt
npmany-promise1.3.0indirekt
npmargparse1.0.10indirekt
npmargparse2.0.1indirekt
npmarray-union2.1.0indirekt
npmassertion-error2.0.1indirekt
npmast-v8-to-istanbul1.0.3indirekt
npmbalanced-match1.0.2indirekt
npmbalanced-match4.0.4indirekt
npmbase64-js1.5.1indirekt
npmbetter-path-resolve1.0.0indirekt
npmbl4.1.0indirekt
npmbrace-expansion1.1.15indirekt
npmbrace-expansion2.1.1indirekt
npmbrace-expansion5.0.6indirekt
npmbraces3.0.3indirekt
npmbuffer5.7.1indirekt
npmbundle-name4.1.0indirekt
npmbundle-require5.1.0indirekt
npmc123.3.4indirekt
npmcac6.7.14indirekt
npmcallsites3.1.0indirekt
npmchai6.2.2indirekt
npmchardet2.1.1indirekt
npmchokidar4.0.3indirekt
npmchokidar5.0.0indirekt
npmcli-cursor3.1.0indirekt
npmcli-cursor5.0.0indirekt
npmcli-spinners2.9.2indirekt
npmcli-width4.1.0indirekt
npmclone1.0.4indirekt
npmcolor-convert2.0.1indirekt
npmcolor-name1.1.4indirekt
npmcolor-support1.1.3indirekt
npmconcat-map0.0.1indirekt
npmconfbox0.1.8indirekt
npmconfbox0.2.4indirekt
npmconsola3.4.2indirekt
npmconvert-source-map2.0.0indirekt
npmcross-spawn7.0.6indirekt
npmdataloader1.4.0indirekt
npmdebug4.4.3indirekt
npmdeep-is0.1.4indirekt
npmdefault-browser5.4.0indirekt
npmdefault-browser-id5.0.1indirekt
npmdefaults1.0.4indirekt
npmdefine-lazy-prop3.0.0indirekt
npmdefu6.1.7indirekt
npmdestr2.0.5indirekt
npmdetect-indent6.1.0indirekt
npmdetect-libc2.1.2indirekt
npmdir-glob3.0.1indirekt
npmemoji-regex10.6.0indirekt
npmemoji-regex8.0.0indirekt
npmenquirer2.4.1indirekt
npmes-module-lexer2.1.0indirekt
npmesbuild0.27.2indirekt
npmescape-string-regexp4.0.0indirekt
npmeslint9.39.2indirekt
npmeslint-scope8.4.0indirekt
npmeslint-visitor-keys3.4.3indirekt
npmeslint-visitor-keys4.2.1indirekt
npmeslint-visitor-keys5.0.0indirekt
npmespree10.4.0indirekt
npmesprima4.0.1indirekt
npmesquery1.7.0indirekt
npmesrecurse4.3.0indirekt
npmestraverse5.3.0indirekt
npmestree-walker3.0.3indirekt
npmesutils2.0.3indirekt
npmexpect-type1.3.0indirekt
npmexsolve1.0.8indirekt
npmextend-shallow2.0.1indirekt
npmextendable-error0.1.7indirekt
npmfast-deep-equal3.1.3indirekt
npmfast-glob3.3.3indirekt
npmfast-json-stable-stringify2.1.0indirekt
npmfast-levenshtein2.0.6indirekt
npmfastq1.20.1indirekt
npmfdir6.5.0indirekt
npmfile-entry-cache8.0.0indirekt
npmfill-range7.1.1indirekt
npmfind-up4.1.0indirekt
npmfind-up5.0.0indirekt
npmfix-dts-default-cjs-exports1.0.1indirekt
npmflat-cache4.0.1indirekt
npmflatted3.4.2indirekt
npmfs-extra7.0.1indirekt
npmfs-extra8.1.0indirekt
npmfsevents2.3.3indirekt
npmget-east-asian-width1.4.0indirekt
npmget-tsconfig4.14.0indirekt
npmgiget3.2.0indirekt
npmglob-parent5.1.2indirekt
npmglob-parent6.0.2indirekt
npmglobals14.0.0indirekt
npmglobby11.1.0indirekt
npmgraceful-fs4.2.11indirekt
npmhas-flag4.0.0indirekt
npmhtml-escaper2.0.2indirekt
npmhuman-id4.1.3indirekt
npmiconv-lite0.7.1indirekt
npmieee7541.2.1indirekt
npmignore5.3.2indirekt
npmignore7.0.5indirekt
npmimport-fresh3.3.1indirekt
npmimurmurhash0.1.4indirekt
npminherits2.0.4indirekt
npmis-docker3.0.0indirekt
npmis-extendable0.1.1indirekt
npmis-extglob2.1.1indirekt
npmis-fullwidth-code-point3.0.0indirekt
npmis-glob4.0.3indirekt
npmis-in-ssh1.0.0indirekt
npmis-inside-container1.0.0indirekt
npmis-interactive1.0.0indirekt
npmis-interactive2.0.0indirekt
npmis-number7.0.0indirekt
npmis-subdir1.2.0indirekt
npmis-unicode-supported0.1.0indirekt
npmis-unicode-supported1.3.0indirekt
npmis-unicode-supported2.1.0indirekt
npmis-windows1.0.2indirekt
npmis-wsl3.1.0indirekt
npmisexe2.0.0indirekt
npmistanbul-lib-coverage3.2.2indirekt
npmistanbul-lib-report3.0.1indirekt
npmistanbul-reports3.2.0indirekt
npmjiti2.7.0indirekt
npmjoycon3.1.1indirekt
npmjs-tokens10.0.0indirekt
npmjs-yaml3.14.2indirekt
npmjs-yaml4.1.1indirekt
npmjson-buffer3.0.1indirekt
npmjson-schema-to-ts3.1.1indirekt
npmjson-schema-traverse0.4.1indirekt
npmjson-stable-stringify-without-jsonify1.0.1indirekt
npmjsonfile4.0.0indirekt
npmkeyv4.5.4indirekt
npmkind-of6.0.3indirekt
npmlevn0.4.1indirekt
npmlightningcss1.32.0indirekt
npmlightningcss-android-arm641.32.0indirekt
npmlightningcss-darwin-arm641.32.0indirekt
npmlightningcss-darwin-x641.32.0indirekt
npmlightningcss-freebsd-x641.32.0indirekt
npmlightningcss-linux-arm-gnueabihf1.32.0indirekt
npmlightningcss-linux-arm64-gnu1.32.0indirekt
npmlightningcss-linux-arm64-musl1.32.0indirekt
npmlightningcss-linux-x64-gnu1.32.0indirekt
npmlightningcss-linux-x64-musl1.32.0indirekt
npmlightningcss-win32-arm64-msvc1.32.0indirekt
npmlightningcss-win32-x64-msvc1.32.0indirekt
npmlilconfig3.1.3indirekt
npmlines-and-columns1.2.4indirekt
npmload-tsconfig0.2.5indirekt
npmlocate-path5.0.0indirekt
npmlocate-path6.0.0indirekt
npmlodash.merge4.6.2indirekt
npmlodash.startcase4.4.0indirekt
npmlog-symbols4.1.0indirekt
npmlog-symbols6.0.0indirekt
npmmagic-string0.30.21indirekt
npmmagicast0.5.3indirekt
npmmake-dir4.0.0indirekt
npmmerge21.4.1indirekt
npmmicromatch4.0.8indirekt
npmmimic-fn2.1.0indirekt
npmmimic-function5.0.1indirekt
npmmlly1.8.0indirekt
npmmri1.2.0indirekt
npmms2.1.3indirekt
npmmute-stream1.0.0indirekt
npmmz2.7.0indirekt
npmnanoid3.3.12indirekt
npmnatural-compare1.4.0indirekt
npmnode-fetch2.7.0indirekt
npmobject-assign4.1.1indirekt
npmobug2.1.2indirekt
npmohash2.0.11indirekt
npmonetime5.1.2indirekt
npmonetime7.0.0indirekt
npmoptionator0.9.4indirekt
npmoutdent0.5.0indirekt
npmp-filter2.1.0indirekt
npmp-limit2.3.0indirekt
npmp-limit3.1.0indirekt
npmp-locate4.1.0indirekt
npmp-locate5.0.0indirekt
npmp-map2.1.0indirekt
npmp-try2.2.0indirekt
npmpackage-manager-detector0.2.11indirekt
npmparent-module1.0.1indirekt
npmpath-exists4.0.0indirekt
npmpath-key3.1.1indirekt
npmpath-type4.0.0indirekt
npmpathe2.0.3indirekt
npmperfect-debounce2.1.0indirekt
npmpicocolors1.1.1indirekt
npmpicomatch2.3.2indirekt
npmpicomatch4.0.4indirekt
npmpify4.0.1indirekt
npmpirates4.0.7indirekt
npmpkg-types1.3.1indirekt
npmpkg-types2.3.1indirekt
npmpostcss8.5.15indirekt
npmpostcss-load-config6.0.1indirekt
npmpowershell-utils0.1.0indirekt
npmprelude-ls1.2.1indirekt
npmprettier2.8.8indirekt
npmpunycode2.3.1indirekt
npmquansync0.2.11indirekt
npmqueue-microtask1.2.3indirekt
npmrc93.0.1indirekt
npmread-yaml-file1.1.0indirekt
npmreadable-stream3.6.2indirekt
npmreaddirp4.1.2indirekt
npmreaddirp5.0.0indirekt
npmresolve-from4.0.0indirekt
npmresolve-from5.0.0indirekt
npmresolve-pkg-maps1.0.0indirekt
npmrestore-cursor3.1.0indirekt
npmrestore-cursor5.1.0indirekt
npmreusify1.1.0indirekt
npmrolldown1.0.3indirekt
npmrollup4.61.1indirekt
npmrun-applescript7.1.0indirekt
npmrun-async3.0.0indirekt
npmrun-parallel1.2.0indirekt
npmrxjs7.8.2indirekt
npmsafe-buffer5.2.1indirekt
npmsafer-buffer2.1.2indirekt
npmsection-matter1.0.0indirekt
npmsemver7.7.4indirekt
npmshebang-command2.0.0indirekt
npmshebang-regex3.0.0indirekt
npmsiginfo2.0.0indirekt
npmsignal-exit3.0.7indirekt
npmsignal-exit4.1.0indirekt
npmslash3.0.0indirekt
npmsource-map0.7.6indirekt
npmsource-map-js1.2.1indirekt
npmspawndamnit3.0.1indirekt
npmsprintf-js1.0.3indirekt
npmstackback0.0.2indirekt
npmstd-env4.1.0indirekt
npmstdin-discarder0.2.2indirekt
npmstring-width4.2.3indirekt
npmstring-width7.2.0indirekt
npmstring_decoder1.3.0indirekt
npmstrip-ansi6.0.1indirekt
npmstrip-ansi7.1.2indirekt
npmstrip-bom3.0.0indirekt
npmstrip-bom-string1.0.0indirekt
npmstrip-json-comments3.1.1indirekt
npmsucrase3.35.1indirekt
npmsupports-color7.2.0indirekt
npmterm-size2.2.1indirekt
npmthenify3.3.1indirekt
npmthenify-all1.6.0indirekt
npmtinybench2.9.0indirekt
npmtinyexec0.3.2indirekt
npmtinyexec1.2.4indirekt
npmtinyglobby0.2.17indirekt
npmtinyrainbow3.1.0indirekt
npmto-regex-range5.0.1indirekt
npmtr460.0.3indirekt
npmtree-kill1.2.2indirekt
npmts-algebra2.0.0indirekt
npmts-api-utils2.4.0indirekt
npmts-interface-checker0.1.13indirekt
npmtslib2.8.1indirekt
npmtsup8.5.1indirekt
npmtype-check0.4.0indirekt
npmtype-fest0.21.3indirekt
npmtypescript5.9.3indirekt
npmtypescript-eslint8.56.0indirekt
npmufo1.6.1indirekt
npmundici-types6.21.0indirekt
npmuniversalify0.1.2indirekt
npmuri-js4.4.1indirekt
npmutil-deprecate1.0.2indirekt
npmvite8.0.16indirekt
npmvitest4.1.8indirekt
npmwcwidth1.0.1indirekt
npmwebidl-conversions3.0.1indirekt
npmwhatwg-url5.0.0indirekt
npmwhich2.0.2indirekt
npmwhy-is-node-running2.3.0indirekt
npmword-wrap1.2.5indirekt
npmwrap-ansi6.2.0indirekt
npmwsl-utils0.3.0indirekt
npmyocto-queue0.1.0indirekt
npmyoctocolors-cjs2.1.3indirekt
Abhängigkeits-Advisories 0

Die Installation von npm:squads-cli@0.9.0 zieht 97 Pakete nach sich, direkt und transitiv: 0 tragen bekannte Advisories, davon 0 direkte Abhängigkeiten.

Keine bekannten Advisories betreffen die bewerteten Abhängigkeiten.

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

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [
        "agent-framework",
        "ai-agents",
        "cli",
        "developer-tools",
        "multi-agent",
        "orchestration",
        "persistent-memory",
        "agentic-ai",
        "ai-workforce",
        "anthropic",
        "autonomous-agents",
        "claude",
        "llm",
        "self-improving-ai",
        "typescript"
      ],
      "is_fork": false,
      "size_kb": 4213,
      "has_wiki": false,
      "homepage": "https://agents-squads.com",
      "languages": {
        "Shell": 21248,
        "JavaScript": 3153,
        "TypeScript": 2852985
      },
      "pushed_at": "2026-07-25T17:01:55Z",
      "created_at": "2025-12-30T00:19:51Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-16T20:05:48Z",
      "description": "CLI for managing AI agent squads. Status, memory, goals, feedback, and dashboard for your autonomous agents.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Agents Squads",
      "type": "Organization",
      "login": "agents-squads",
      "company": null,
      "location": null,
      "followers": 4,
      "avatar_url": "https://avatars.githubusercontent.com/u/248935150?v=4",
      "created_at": "2025-12-10T17:27:44Z",
      "is_verified": null,
      "public_repos": 3,
      "account_age_days": 229
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2026-07-07T19:37:14Z"
        },
        {
          "tag": "v0.8.3",
          "kind": "patch",
          "published_at": "2026-07-07T17:07:37Z"
        },
        {
          "tag": "v0.8.2",
          "kind": "patch",
          "published_at": "2026-07-07T02:06:59Z"
        },
        {
          "tag": "v0.8.1",
          "kind": "patch",
          "published_at": "2026-06-11T23:14:50Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-06-11T00:46:30Z"
        },
        {
          "tag": "v0.3.3",
          "kind": "patch",
          "published_at": "2026-06-10T16:54:18Z"
        },
        {
          "tag": "v0.3.2",
          "kind": "patch",
          "published_at": "2026-06-10T16:54:16Z"
        },
        {
          "tag": "v0.3.1",
          "kind": "patch",
          "published_at": "2026-04-25T04:07:34Z"
        },
        {
          "tag": "v0.3.0-rc.1",
          "kind": "prerelease",
          "published_at": "2026-04-25T04:07:40Z"
        },
        {
          "tag": "v0.2.2",
          "kind": "patch",
          "published_at": "2026-03-28T16:21:41Z"
        },
        {
          "tag": "v0.2.1",
          "kind": "patch",
          "published_at": "2026-03-13T19:25:03Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2026-04-30T04:41:49Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "b0932805ea27c5d91db87a10fe71bdae5acc3a0f",
          "body": "* refactor(core): run engine decomposition + context helpers [v0.3.0 — 1/7] (#731)\n\n* refactor(core): run engine decomposition, context helpers, squad parser improvements\n\nCore runtime refactoring from v0.3.0 development cycle:\n\n- run-context.ts: expanded context helpers for goal injection, feedback\n[…]\n epochs, harvest\noutcome, run identity — executionId was already in scope, just dropped);\nstatus/usage/exec-list/run sweep the spool and turn each done-file into\na real ObservabilityRecord (provider …",
          "is_bot": false,
          "headline": "release: v0.9.0 — the loop release (#1033)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-07-07T19:35:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "863e9dd71716c45f0434871b4599ee7a20dd92e0",
          "body": "* refactor(core): run engine decomposition + context helpers [v0.3.0 — 1/7] (#731)\n\n* refactor(core): run engine decomposition, context helpers, squad parser improvements\n\nCore runtime refactoring from v0.3.0 development cycle:\n\n- run-context.ts: expanded context helpers for goal injection, feedback\n[…]\nt (exit code, epochs, harvest\noutcome, run identity — executionId was already in scope, just dropped);\nstatus/usage/exec-list/run sweep the spool and turn each done-file into\na real ObservabilityReco…",
          "is_bot": true,
          "headline": "release: v0.8.3 — the first-run journey release (#1005)",
          "author_name": "agents-squads[bot]",
          "author_login": "agents-squads[bot]",
          "committed_at": "2026-07-07T17:06:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2e44778f7976496adc035a946f93484471e604ac",
          "body": "* release: v0.8.2 — trustworthy execution follow-through\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n* fix(quota-probe,run): address Gemini review on #905\n\n- quota-probe: register a child.stdin 'error' handler — an unhandled EPIPE\n  (probe child dies fast when quota is exhausted) would crash th\n[…]\nhe function's error-loudly contract.\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": true,
          "headline": "release: v0.8.2 — trustworthy execution follow-through (#927)",
          "author_name": "agents-squads[bot]",
          "author_login": "agents-squads[bot]",
          "committed_at": "2026-07-05T16:00:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "64c957c83ad0ca86c14c4f2153136c1a6fd05d96",
          "body": "* release: v0.8.1 — run containment + introspection\n\n- #849/#850/#852 containment: spool records, watchdog, runs/kill\n- #842 commands --json · #846 provider repo routing (P1)\n- #847 SQUADS_AIDER_MAP_TOKENS · #848/#851 generated seed skill\n- #839 canonical commit identity · #833 dependabot clearance\n\n[…]\nagged by code-quality review on #854\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": true,
          "headline": "release: v0.8.1 — run containment + introspection (#854)",
          "author_name": "agents-squads[bot]",
          "author_login": "agents-squads[bot]",
          "committed_at": "2026-06-11T23:09:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ade7e1f579f23aa09fefabafa1ea19f5f2215dda",
          "body": "Multi-provider executors with full run observability:\n- #822 DeepSeek provider via aider delegation\n- #825 worktree harvest — executor work can never be lost\n- #826 provider run observability + parseUsage\n- #818 per-run outcome capture (actions/commits/PRs/issues)\n- #829 release.yml GitHub-Release-only (closes #819)\n- #828 RELEASING.md (closes #827)\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": true,
          "headline": "release: v0.8.0 — trustworthy execution (#831)",
          "author_name": "agents-squads[bot]",
          "author_login": "agents-squads[bot]",
          "committed_at": "2026-06-11T00:43:53Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ade2552189e9e9cb4dc394ed36cf5a547e21e241",
          "body": "* release: v0.3.3 — runtime reliability\n\nPromotes the v0.3.3 fixes to main (built off main with develop's contents\nto avoid squash-divergence conflicts; see hq#443):\n- #806 --timeout bounds per-agent execution; default 30->15\n- #807 founder-context refresh async (non-blocking)\n- #808 per-squad-run w\n[…]\n.3\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: agents-squads[bot] <266303152+agents-squads[bot]@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": true,
          "headline": "release: v0.3.3 — runtime reliability (#811)",
          "author_name": "agents-squads[bot]",
          "author_login": "agents-squads[bot]",
          "committed_at": "2026-06-10T16:36:44Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4c4ded87d9e838104a03d68d43a3577084820b7b",
          "body": "Node 18 is EOL and vitest/rolldown import styleText from node:util\n(Node >=20 only), which crashed the Test step on ci(18) and skipped\npublish — silently blocking the last two tagged releases from npm.\n\n- release.yml / publish.yml matrices: [18,20,22] -> [20,22]\n- engines.node: >=18 -> >=20\n- CHANGELOG note under [0.3.2]\n\nCloses #801\n\nCo-authored-by: agents-squads[bot] <266303152+agents-squads[bot]@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": true,
          "headline": "ci: drop EOL Node 18 from release & publish matrices (#802) (#804)",
          "author_name": "agents-squads[bot]",
          "author_login": "agents-squads[bot]",
          "committed_at": "2026-06-08T15:23:38Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a418c8179b6963e481cbd4b98b9e3789f8f5c645",
          "body": "…autonomy (#799)\n\n* refactor(core): run engine decomposition + context helpers [v0.3.0 — 1/7] (#731)\n\n* refactor(core): run engine decomposition, context helpers, squad parser improvements\n\nCore runtime refactoring from v0.3.0 development cycle:\n\n- run-context.ts: expanded context helpers for goal i\n[…]\n.com>\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\nCo-authored-by: agents-squads[bot] <266303152+agents-squads[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "release: v0.3.2 — agent runtime, founder-context, safety/governance, …",
          "author_name": "agents-squads[bot]",
          "author_login": "agents-squads[bot]",
          "committed_at": "2026-06-08T14:32:26Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a1d2df6efaf89a26cefaa20883ac5c60cd81f508",
          "body": "…ug (#760)\n\n\\`npm install -g npm@latest\\` fails mid-upgrade with \\`Cannot find module\n'promise-retry'\\` because the new npm package is partially installed and\ncan't resolve its own internal arborist modules. Documented npm bug.\n\nAdding --force makes the install bypass the broken intermediate state.\n\n[…]\nl (tag-triggered) and publish.yml (manual).\nThis is what blocked the v0.3.1 publish to @latest.\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(ci): use --force on npm self-upgrade to bypass MODULE_NOT_FOUND b…",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-04-24T22:32:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d79b06c9830dbefdc9afca2ba7016e44ea17f55d",
          "body": "* chore: bump to 0.3.1 — first usable v0.3.x on @latest\n\nSkipping 0.3.0 because that version slot was claimed by a deprecated\nhistorical pre-release (Jan 2026, deprecated as part of the\n\"deprecate all pre-release versions 0.3.0-0.6.2\" cleanup). npm\nenforces version immutability — we cannot republish\n[…]\nusers discover them without hunting.\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "release: v0.3.1 — first stable v0.3.x on @latest (#759)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-04-24T22:22:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ea1e618c78a0f9602a47776b16494c638fa6ac77",
          "body": "Promotes rc.1 to the stable v0.3.0 release. After merge, tag v0.3.0\ntriggers release.yml → publishes to @latest via OIDC.\n\nCloses the v0.3.0 cycle: run engine rewrite, conversation mode,\nproject config system, OIDC trusted publishing.\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: bump to 0.3.0 for @latest promotion (#758)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-04-24T16:46:11Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "da5baac5dab5419cfc1ad2c073ec2b1276c81185",
          "body": "* refactor(core): run engine decomposition + context helpers [v0.3.0 — 1/7] (#731)\n\n* refactor(core): run engine decomposition, context helpers, squad parser improvements\n\nCore runtime refactoring from v0.3.0 development cycle:\n\n- run-context.ts: expanded context helpers for goal injection, feedback\n[…]\n, not @latest\n\nCloses #754\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\n\n---------\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "release: v0.3.0-rc.1 — OIDC publish fix + @next burn-in (#756)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-04-24T15:26:45Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "03253f8d403c39b01ab06b9a5b833e4519913874",
          "body": "…, security, telemetry, UX (#743)\n\n* refactor(core): run engine decomposition + context helpers [v0.3.0 — 1/7] (#731)\n\n* refactor(core): run engine decomposition, context helpers, squad parser improvements\n\nCore runtime refactoring from v0.3.0 development cycle:\n\n- run-context.ts: expanded context h\n[…]\n.com>\n\n---------\n\nCo-authored-by: Jorge Vidaurre <3512039+kokevidaurre@users.noreply.github.com>\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": true,
          "headline": "release: v0.3.0 — run engine rewrite, conversation mode, new commands…",
          "author_name": "agents-squads[bot]",
          "author_login": "agents-squads[bot]",
          "committed_at": "2026-04-23T17:51:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b4c21922650ad3487bb465f764a2b82f53e9e365",
          "body": "…(#642)\n\n* fix(security): update minimatch to fix ReDoS vulnerability (#350)\n\nCloses #342\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\n\n* fix(security): escape shell variables in background/watch mode spawn (#351)\n\nPrevents shell injec\n[…]\nstep ordering, README generation (#545)\n\nCloses #524, closes #525, closes #523\n\n- #524: Add value descriptions to each squad in the Created: output\n  (e.g. \"research/ 4 agents — Researches your marke…",
          "is_bot": true,
          "headline": "release: v0.2.2 — IDP, observability, tiered architecture, org cycle …",
          "author_name": "agents-squads[bot]",
          "author_login": "agents-squads[bot]",
          "committed_at": "2026-03-27T23:24:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "dc051eea995cbbd6693a378d90d87e7159c24181",
          "body": null,
          "is_bot": false,
          "headline": "chore: remove temp deprecate workflow",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-03-13T21:36:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a33067d673316481c0a95abfa742664bb0149f92",
          "body": null,
          "is_bot": false,
          "headline": "chore: deprecate all pre-release versions 0.3.0-0.6.2",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-03-13T21:35:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e5718f5aa99bc999cdcea23c37473ad3fd3193c4",
          "body": null,
          "is_bot": false,
          "headline": "chore: remove temp deprecate workflow",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-03-13T21:25:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d06b4d8b06d56ffdcf03e7a5a30c543107af95df",
          "body": null,
          "is_bot": false,
          "headline": "chore: fix deprecate workflow content",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-03-13T21:24:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16fbdd1cf4c8f8b0a975d903fd0abc97f4cf8922",
          "body": null,
          "is_bot": false,
          "headline": "chore: temp workflow to deprecate broken 0.7.x",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-03-13T21:23:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b59a8c6b247bc1da0a135a832c038be5afe9ac9",
          "body": "* fix(security): update minimatch to fix ReDoS vulnerability (#350)\n\nCloses #342\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\n\n* fix(security): escape shell variables in background/watch mode spawn (#351)\n\nPrevents shell injection via \n[…]\nneration (#545)\n\nCloses #524, closes #525, closes #523\n\n- #524: Add value descriptions to each squad in the Created: output\n  (e.g. \"research/ 4 agents — Researches your market, competitors, and oppo…",
          "is_bot": false,
          "headline": "release: v0.2.1 — first-run experience reset (#601)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-03-13T19:21:50Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c4c92b37d9e866f250b6bf780b4e2638ad012cd9",
          "body": "* fix(security): update minimatch to fix ReDoS vulnerability (#350)\n\nCloses #342\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\n\n* fix(security): escape shell variables in background/watch mode spawn (#351)\n\nPrevents shell injection via \n[…]\ns #524, closes #525, closes #523\n\n- #524: Add value descriptions to each squad in the Created: output\n  (e.g. \"research/ 4 agents — Researches your market, competitors, and opportunities\")\n  so new u…",
          "is_bot": false,
          "headline": "release: develop to main (#492)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-03-12T13:10:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7879586d10299a5b09aec4d995fbc474c9eec6d5",
          "body": "* fix(security): update minimatch to fix ReDoS vulnerability (#350)\n\nCloses #342\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\n\n* fix(security): escape shell variables in background/watch mode spawn (#351)\n\nPrevents shell injection via \n[…]\ndaurre <jorge@agents-squads.com>\nCo-authored-by: agents-squads[bot] <266303152+agents-squads[bot]@users.noreply.github.com>\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: v0.7.0 release + memory ingestion for cognition (#444)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-03-08T02:55:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "993dabf5a41c9d6c52e48739ac400c2e854e1ddb",
          "body": "…442)\n\n* fix(security): update minimatch to fix ReDoS vulnerability (#350)\n\nCloses #342\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\n\n* fix(security): escape shell variables in background/watch mode spawn (#351)\n\nPrevents shell injecti\n[…]\ndaurre <jorge@agents-squads.com>\nCo-authored-by: agents-squads[bot] <266303152+agents-squads[bot]@users.noreply.github.com>\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore: develop → main (54 commits — bot identity, tests, features) (#…",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-03-07T16:05:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "389e263ea5b0200c89bad5b4512695f1f0ca58b8",
          "body": "… (#395)\n\n* fix(security): update minimatch to fix ReDoS vulnerability (#350)\n\nCloses #342\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\n\n* fix(security): escape shell variables in background/watch mode spawn (#351)\n\nPrevents shell inje\n[…]\nkevidaurre@users.noreply.github.com>\nCo-authored-by: Test <test@test.com>\nCo-authored-by: cli/issue-solver <cli-issue-solver@agents-squads.com>\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>",
          "is_bot": false,
          "headline": "chore: develop → main (30 commits — security, tests, features, fixes)…",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-03-07T14:16:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b992aeed0f599d1e11760dc917c2e57c9c71f50e",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 0.6.2",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-21T07:06:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c2d861a217c861ab43dccfa05f0cfded1916a1b0",
          "body": "…frontmatter (#347)\n\n- 17 magic numbers replaced with named constants at top of run.ts\n- Cooldown now reads from agent frontmatter (e.g., cooldown: \"30m\") via parseCooldown()\n- Falls back to DEFAULT_SCHEDULED_COOLDOWN_MS (6h) if not specified\n- Fixes COO agent being blocked by hardcoded 6h cooldown when frontmatter says 30m\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: extract hardcoded values to constants, read cooldown from agent …",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-21T07:02:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7f085366a861c5c7ea2f4a46b93e02ab4941e214",
          "body": "- release.yml: Full CI (lint, typecheck, build, test) + security audit\n  must pass before publish job runs. No more shipping broken packages.\n- publish.yml: Manual-only with PUBLISH confirmation + full CI gate.\n- ci.yml: FORCE_COLOR=1 for tests (terminal color tests need TTY).\n  Security audit level\n[…]\ntest now optional (not in standard\n  docker-compose).\n- Version bump: 0.6.0 → 0.6.1\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: v0.6.1 — CI must pass before npm publish + test fixes (#345)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-21T05:00:42Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4133b419dcccd3d1e93b58c0c75852bc2df5cf1f",
          "body": "* chore: prepare release v0.6.0\n\n- Add CHANGELOG.md with all changes since v0.5.1\n- Version already at 0.6.0 in package.json (minor bump)\n- 60 commits: new features (eval, deploy, dashboard ROI, branch isolation),\n  security fixes, multi-provider routing, squad-scoped skills\n\nCo-Authored-By: Claude \n[…]\nme was cleaned\"\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Release v0.6.0 (#336)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-21T04:50:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1d21b0100eb3900c932534cc470b51f44f067300",
          "body": "Remove leading ./ from bin path to prevent npm publish warning:\n\"bin[squads] script name was cleaned\"\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: normalize bin script path in package.json",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-21T00:15:38Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d1ed678988c52c7c80096e52f2e3f1d444f71baf",
          "body": "Tests expected old format (Added:, --- separator) but implementation\nwas updated to use ## YYYY-MM-DD: heading format for synthesizer\ncompatibility. Now tests match the actual output.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: update memory tests to match new ## date format",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-20T23:32:58Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c2df44b4d766660961cd57f16be88255d3045863",
          "body": "Non-Anthropic providers (Gemini, GPT, Ollama) were missing worktree\nisolation, proper env handling, and used tmux instead of log files.\nNow matches the executeWithClaude execution path:\n- Git worktree per agent execution (no branch collisions)\n- CLAUDECODE env var unset (allows nesting)\n- Background mode uses log files + PID (not tmux sessions)\n- Consistent env vars passed to provider CLIs\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: add worktree isolation to executeWithProvider",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-20T23:23:18Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e0f2bd65b60b0b62f187ee5ec7b26c80810564cf",
          "body": "Concurrent agents running `git checkout -b` in the same working tree\ncause branch collisions — last checkout wins. Now each agent gets\nits own worktree at ../.worktrees/{squad}-{agent}-{timestamp}.\n\nAll 3 execution modes updated (foreground, watch, background).\nFalls back to project root if worktree creation fails.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: use git worktrees for agent isolation instead of checkout",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-20T22:18:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "46d4dca38c88791d39b6705f815276df525cf971",
          "body": "Create isolated branch (agent/{squad}/{agent}-{timestamp}) before spawning\nClaude in all three execution modes: foreground, watch, and background.\nThis prevents agents from accidentally committing to main.\n\nBranch isolation was removed on Feb 17 (44bc09d) causing agents to\ncommit directly to main, breaking the git-based workflow.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: restore auto branch isolation for agent execution",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-20T21:33:57Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "55a2d26e959c559daf00f4937ac2c8716153b549",
          "body": "squads run spawns claude as a child process, but when running inside\na Claude Code session, the CLAUDECODE env var blocks nested sessions.\nRemove it from spawn env so background/foreground agents can launch\nfrom within Claude Code (e.g., COO dispatching squad leads).\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: unset CLAUDECODE env var to allow nested execution",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-20T20:12:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9dd8d37e640c0b2d68011b32e94d8fb277e789f3",
          "body": "- Delete ux-tests/ directory (internal testing reports with local file paths)\n- Replace personal email jorge@agents-squads.com with hello@agents-squads.com in dashboard.ts\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: remove internal artifacts and personal info from public repo",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-20T04:06:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e0df100e999a6b1d1b51ac2a7b80295b401ca1a3",
          "body": "Remove hardcoded production API URLs, internal DB credentials, internal\nMCP server names (supabase, grafana, nano-banana, x-mcp), and org\nstructure hints from source code. All env-specific values now require\nenv vars with no sensitive fallback defaults.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "security: remove internal infrastructure references from public repo",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-20T03:34:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "32ead10b9025bae1072a6c0a1441522a1067959e",
          "body": "Prevent accidental commit of coverage reports (contain rendered\nsource with internal URLs) and docker env (contains API keys).\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: gitignore coverage/ and docker/.env",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-20T03:25:04Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6d83951a7d01c2a39d3891c689c2ca4c93633058",
          "body": "The fallback to ~/.claude.json was wrong — that's Claude's settings\nfile, not an MCP config. Passing it as --mcp-config caused Claude\nto exit silently with no output. Now returns empty string and skips\nthe flag entirely for squads without MCP configuration.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: skip --mcp-config when no squad MCP config exists",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-20T03:07:30Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "97240a1b8f6eb86089af0451aa2a9844ec49cd06",
          "body": "Large agent prompts with special characters broke shell command\nconstruction. Switched from sh -c \"exec claude ...\" to direct\nspawn('claude', args) which passes argv without shell parsing.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: use array spawn for foreground mode to avoid shell escaping",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-20T02:57:45Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7f85f484b1d41d0868eefeac0d0df9ca8ca5999a",
          "body": "When stdin is not a TTY (cron, systemd, pipe), Claude Code\nenters interactive mode and hangs waiting for input. This adds\n--print automatically in non-TTY contexts so agents execute\nand exit correctly.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: auto-detect non-TTY and use --print in foreground mode",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-20T02:32:45Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f2ed1115b2babc397f1edbd6c425048a56853c56",
          "body": "Phase A: Inject daily briefing + cross-squad learnings into agent context\nPhase B: Emit agent.completed/failed events to API with file fallback\nPhase C: Verify execution against acceptance_criteria, retry on failure\nPhase D: --no-verify flag to skip Ralph loop\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(run): memory injection, event emission, Ralph verification loop",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-20T01:44:58Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "097955b278f280834582a63300a459722e9b296d",
          "body": "Change appendToMemory format from `---/_Added: date_` to `## YYYY-MM-DD: heading`\nso the daily briefing synthesizer can extract insights automatically.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: standardize learnings format for synthesizer parsing",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-19T23:29:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "79ae10fc0789182a26bee76ef15cefc287a0d722",
          "body": "The old api-slack service (:3001) was absorbed into squads-api.\nUpdate URL and endpoint paths.\n\nFixes agents-squads/squads-cli#330\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: point approval commands to squads-api instead of dead slack-bot",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-19T01:57:48Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7d941228112975e522d360ca8b992009547db14a",
          "body": "Fall back to SCHEDULER_URL for backwards compatibility.\nReplace sync_triggers.py call with API endpoint.\n\nFixes agents-squads/squads-cli#328, agents-squads/squads-cli#329\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: update trigger commands to use SQUADS_API_URL",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-19T01:57:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7a66b7db0d13e709e53a61afbd0141f569e0b5df",
          "body": "- Add missing templates/seed/skills/gh/SKILL.md template that caused init crash\n- Update CI smoke-test assertions to match new seed-based init structure\n- Bump @isaacs/brace-expansion 5.0.0 → 5.0.1 (fixes high-severity ReDoS)\n\nCloses #313",
          "is_bot": false,
          "headline": "fix(ci): resolve smoke-test failure and npm audit vulnerability",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-18T01:56:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b7e9c6dd00c8697ce1deb417db5c816055c69b5",
          "body": "… import (#326)\n\nClean up 15 ESLint warnings across 6 files:\n- cli.ts: remove unused jsonOutput function\n- autonomous.ts: remove unused basename import, prefix unused runningCount\n- context.ts: remove unused getSquadLocalSkills, ResolvedSkill imports\n- deploy.ts: remove unused readdirSync, statSync,\n[…]\nloses #307, #310, #312\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(lint): remove all unused imports/vars, replace require() with ESM…",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-18T01:51:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f9bfe1504dd5c4aba751f0fd1f86b1fdf0c6e9a3",
          "body": "Closes #322\n\n- Set mode 0o700 on ~/.squads-cli directory (owner rwx only)\n- Set mode 0o600 on auth.json (owner rw only)\n- Use unlinkSync in clearSession() to delete file instead of writing empty content\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: engineering/issue-solver <engineering-issue-solver@agents-squads.com>",
          "is_bot": false,
          "headline": "fix(security): restrict auth file permissions to owner-only (#325)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-17T17:47:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c11c36098aab5e134453cc3b49f7600a651cb358",
          "body": "Move squad/agent/trigger/execution env vars from shell `export`\nstatements (interpolated into `sh -c` commands) to the `spawn()` `env`\noption. This eliminates the shell injection surface where malicious\nvalues in YAML frontmatter could achieve RCE.\n\nAll three spawn sites updated: foreground, watch, and background modes.\n\nCloses #321\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: engineering/issue-solver <engineering-issue-solver@agents-squads.com>",
          "is_bot": false,
          "headline": "fix(security): prevent shell injection in agent spawn (#324)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-17T17:44:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e38f4f68a8296b7a029772454c5eddf10c4b448",
          "body": "Closes #320\n\nAdd escapeHtml() to sanitize user-controlled query parameters (error, email)\nbefore interpolating into HTML responses in the OAuth callback server,\npreventing reflected XSS during the squads login flow.\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: engineering/issue-solver <engineering-issue-solver@agents-squads.com>",
          "is_bot": false,
          "headline": "fix(security): escape HTML in OAuth callback responses (#323)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-17T17:43:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44bc09dbc11882bd4fb32591dd67bca70609c899",
          "body": "… optional deps\n\n- #308: Replace hardcoded Cloud Run URLs with api.agents-squads.com\n- #315: Gate all ANSI output on TTY detection + NO_COLOR/FORCE_COLOR support\n- #317: Custom friendly error messages for missing arguments (run, eval, budget, etc.)\n- #293: Add use-case selection to init (Engineering\n[…]\nefore run\n- #295: Make Postgres & Redis optional — core commands work without infrastructure\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): resolve 6 P1 issues — URLs, ANSI, errors, init, run checks,…",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-17T15:10:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9e567b758fee240015f4071e29b155c1b0e45ffc",
          "body": "…go sim\n\n- init: add interactive business prompts (name, description, research focus)\n- init: update BUSINESS_BRIEF template with business name/description variables\n- sessions: filter to project root (fixes session leak from host machine)\n- list: detect squad lead from SQUAD.md frontmatter instead \n[…]\nvoked)\n- tests: fix sessions test regression, add project-root filter test\n\nFound by running cli-critic and code-eval squad agents against the codebase.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cli): interactive init, session filtering, bug fixes from Santia…",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-17T05:47:58Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7039131a12bdae2d1f429b46f2b69ae4e8395667",
          "body": "Widen --model flag from Claude-only aliases (opus/sonnet/haiku) to\naccept any model ID. The CLI's existing provider detection and\nexecuteWithProvider() already handle non-Claude models.\n\n- RunOptions.model: string (was 'opus' | 'sonnet' | 'haiku')\n- ExecuteWithClaudeOptions.model: string\n- Routine.model: string (squad-parser)\n- Updated --model help text with multi-provider examples\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cli): accept any model string for multi-provider routing",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-15T17:21:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8e7cbcd1029bff84de8c3404cc66c7542ba977e9",
          "body": "Agents now run on their own branch (agent/{squad}/{agent}-{timestamp})\ninstead of committing directly to main. After agent completes, repo\nswitches back to main. Work products stay on the branch for PR review.\n\n- Shell script creates branch before spawning claude\n- Prompt instructs agent to commit o\n[…]\nbranch, never switch to main\n- After completion, git checkout main restores repo state\n- TDD test suite validates branch isolation (10/10 pass)\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(run): enforce branch isolation for agent execution",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-10T23:00:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6c6d818d0cf8772e9334a4f2966c2d7128cdad01",
          "body": "Adds `squads eval <squad/agent>` command that scores agent readiness\nacross 5 dimensions:\n- Definition quality (frontmatter, instructions, sections)\n- Execution reliability (run history, recent activity)\n- Output consistency (structure, formatting)\n- Memory utilization (state, learnings, output file\n[…]\non output and whole-squad evaluation.\n\nCloses agents-squads/squads-cli#299\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(eval): implement squads eval readiness scorer (#305)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-10T20:08:42Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d1723782bab1f1297ee040a58b7dcbcbb325bdbf",
          "body": "Add `squads deploy` command with three subcommands:\n- `squads deploy` — Build manifest from .agents/ and push triggers to platform\n- `squads deploy status` — Show platform triggers and execution stats\n- `squads deploy pull` — Pull execution data and learnings from platform\n\nSupports --dry-run, --squ\n[…]\ns active session from `squads login`.\n\nCloses agents-squads/squads-cli#302\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(deploy): implement squads deploy command (Phase 5) (#304)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-10T20:04:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "bf7e7ee5ade064ca0ca01de876c05faa156b745d",
          "body": "refactor: remove pg, ioredis, supabase from CLI",
          "is_bot": false,
          "headline": "Merge pull request #303 from agents-squads/solve/issue-298",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-10T18:22:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "69a30f520713315de07ed20fcbc6563d635c9bad",
          "body": "The CLI (Layer 1) should have zero infrastructure dependencies.\nDatabase, Redis, and Supabase are platform concerns (Layer 3).\n\nChanges:\n- db.ts: stub functions returning null/empty (no pg import)\n- cycle-sync.ts: stub functions (no pg import)\n- postgres.ts: stub data source, keep pure utility funct\n[…]\nupabaseClient\n- package.json: remove pg, ioredis, @supabase/supabase-js, @types/pg\n- test: update cycle-sync test for new stub API\n\nCloses #298\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: remove pg, ioredis, supabase from CLI dependencies",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-10T18:22:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8acc80115662dab5b9aefaeafa956e02bd642540",
          "body": "test: extract cron functions to lib/cron.ts and add comprehensive tests",
          "is_bot": false,
          "headline": "Merge pull request #301 from agents-squads/solve/issue-300",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-10T18:17:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "893217a35cc922a44b0ac6e206b88ee740934edb",
          "body": "Closes #300\n\nExtracted zero-dependency cron evaluator functions from autonomous.ts to\nreusable src/lib/cron.ts module for better testability and code reuse.\n\nAdded 36 comprehensive test cases covering:\n- cronMatches(): 10 test cases for pattern matching\n- getNextCronRun(): 5 test cases for next occu\n[…]\nverage of cron evaluation logic.\n\nCo-Authored-By: cli/issue-solver <cli-issue-solver@agents-squads.com>\n\nAgent: cli/issue-solver\nSquad: cli\nTrigger: manual\nExecution: 1770746979\nModel: claude-sonnet-4",
          "is_bot": false,
          "headline": "test: extract cron functions to lib/cron.ts and add comprehensive tests",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-10T18:09:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6d6d031502f007b47e1313682c9bf1e0a9912236",
          "body": "Replace stub with working local scheduler daemon (Layer 2 per ARCHITECTURE.md):\n\n- Cron evaluator: zero-dependency, supports *, ranges, steps, lists\n- Daemon mode: `squads autonomous start` spawns detached background process\n- PID file monitoring: detect running agents, clean orphans, enforce timeou\n[…]\nsplay: shows running agents, next 10 scheduled runs, daemon health\n\nNo external dependencies added. No database. No Redis. Just a node process.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(autonomous): implement real scheduling daemon",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-10T18:01:36Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "47a7b02fb46ddb02b2eb6e55f919e43e365ff0e3",
          "body": "Remove 15 deprecated infrastructure/human-only commands (~7,100 lines),\ncreate seed templates for `squads init` (9 agents across 2 squads),\nadd --json output to core commands, make execution the default for\n`squads run`, and remove blessed/blessed-contrib dependencies.\n\nThe CLI is now focused on what AI managers need: execute, understand,\ntrack, learn, schedule. Infrastructure management moved to engineering/.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cli): reposition as business OS for AI managers (v0.6.0)",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-06T14:30:48Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "25e968b69af75c71581c297c31a43ceab49bcda4",
          "body": "This reverts commit c4f66cf1ac00d60d86dac5b5497dcba267487b7e.",
          "is_bot": false,
          "headline": "Revert \"Revert \"docs: realign positioning to \"Your AI workforce\"\"\"",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-06T01:05:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4f66cf1ac00d60d86dac5b5497dcba267487b7e",
          "body": "This reverts commit d8a31ca58ef789d60b80c921548237f664701a8c.",
          "is_bot": false,
          "headline": "Revert \"docs: realign positioning to \"Your AI workforce\"\"",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-06T00:59:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d8a31ca58ef789d60b80c921548237f664701a8c",
          "body": "Update package.json description and keywords, README opening, comparison table,\nand footer to reflect entrepreneur-focused mission framing.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: realign positioning to \"Your AI workforce\"",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-06T00:48:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "fe33bac9ba83f9e060a79b7abe3ef3310f68d91d",
          "body": "Moved fetchLearnings before dry-run check so preview accurately\nshows what learnings would be injected during real execution.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(run): include learnings in dry-run preview",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-03T03:48:55Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1d26a7da577f6d74e1f48002709b2fb83eb3a479",
          "body": "…ridge\"\n\nThis reverts commit eac9aa571ef4ae1307eee1c375a506604934eabc.",
          "is_bot": false,
          "headline": "Revert \"refactor(run): load learnings directly from file instead of b…",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-03T03:44:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eac9aa571ef4ae1307eee1c375a506604934eabc",
          "body": "Simplified learning injection by reading learnings.md directly\nduring context gathering instead of fetching from bridge API.\n\n- Removes bridge dependency for learnings (faster, simpler)\n- Loads last ~2000 chars of learnings (most recent)\n- Integrated into gatherSquadContext with other memory files\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(run): load learnings directly from file instead of bridge",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-03T03:41:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "14786fe559d638d2aff05cc74b17d46a6ee40ad9",
          "body": null,
          "is_bot": false,
          "headline": "refactor: clean up unused code",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-03T02:14:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e356b3867cf4ae54c27e569aad8c1818b7f58a5",
          "body": "- Add 24h execution stats to overall status view (completed/failed/running)\n- Add recent executions section to squad detail view\n- Show status icons, agent names, duration, and relative time\n- Verbose mode shows error details for failed executions\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(status): add execution observability to squad status",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-03T01:52:13Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "be50d64902021bddf7be077cdd1e7a97a12d23b3",
          "body": "- Deprecate --execute flag with warning pointing to Claude Code native execution\n- Add `env prompt <squad> -a <agent>` command for ready-to-use prompts\n- Update foreground spawn to use shell wrapper for Node 22 compatibility\n- Align with Claude Code as execution engine, squads as context provider\n\nUsage:\n  squads env prompt company -a event-dispatcher | claude --print\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(run): deprecate -e flag, add native Claude execution pattern",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-03T01:41:26Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6366f7cbe854c825e937372c820537cf759a4f9a",
          "body": "Node.js 22 tries to require() symlinked executables instead of\nspawning them as subprocesses. Adding shell: true forces spawn\nto use /bin/sh which handles shebang resolution correctly.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(run): add shell wrapper for Node 22 symlink resolution",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-02T23:21:01Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4529995d61f4f961bfa63e793df4733868bff0eb",
          "body": "- Add update-docs-changelog.cjs script to insert release entries\n- Integrate into release.sh as step 8/9 (before npm publish)\n- Extracts features/fixes from commits, formats Mintlify-compatible MDX\n- Skips gracefully if docs repo not found locally\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(release): auto-update docs changelog on version bump (#270)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-02T14:03:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "27b5ed8d33190283476eb4ae787cbba940056605",
          "body": "* fix(ci): add CODEOWNERS and run CI on sprint branches\n\n- Create CODEOWNERS file requiring @kokevidaurre review\n- Update CI workflow to run on sprint/** and release/** branches\n- Fixes governance gap where PRs were bypassing review\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>\n\n* feat: a\n[…]\nw)\n\nCloses #268\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: add privacy indicators to CLI output (#269)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-02-02T13:36:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "127dadc4a196d3da1a4141f30e98944b51252c48",
          "body": null,
          "is_bot": false,
          "headline": "chore(login): use Cloud Run URL directly (DNS routing pending)",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-30T00:59:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d00a8e4b4ff1b57101caf2eb8374fabdf5bf7e19",
          "body": "Point to the actual API endpoint instead of non-existent app domain.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(login): update auth URL to api.agents-squads.com",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-30T00:38:13Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7c241946d7b357b865a25ede4d1921834a35cdb1",
          "body": "- Add docs badge to header\n- Add documentation quick links (docs, onboarding, architecture)\n- Add link to hooks-and-skills guide in Claude Code Integration section\n- Expand Related section with documentation, research, and intelligence links\n- Update pre-commit hook to allow credential examples in README\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add backlinks to agents-squads.com",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-29T16:20:01Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1eb979c757c4a0055f340e006400631cb08c8b00",
          "body": "Check if auth endpoint is reachable before opening browser.\nIf unavailable, show friendly message with next steps instead of\nletting users hit a broken page.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(login): show graceful \"coming soon\" message when auth unavailable",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-29T14:46:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2d06f5b453a39ec4fa3ce362ae3e33ee9a5cef7c",
          "body": "Use realpathSync to resolve /var/folders symlink to /private/var/folders,\nfixing path comparison failures in memory tests on macOS.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(test): normalize temp paths for macOS compatibility",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-29T14:21:57Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8d2ee731e0ea4cf2970911a92ffb7f2e9aca2f96",
          "body": "feat(context): add squad-scoped skills and MCP servers",
          "is_bot": false,
          "headline": "Merge pull request #243 from agents-squads/feat/squad-scoped-skills",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-29T14:18:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee624b6d8dd82f796142250b0bb51eb87b3d3eda",
          "body": "Implements #109: Squad-scoped skills and MCP servers\n\nChanges:\n- Add three-tier skill resolution: squad-local > project > global\n- Add squad-local MCP config support (.agents/squads/<squad>/mcp.json)\n- Add ResolvedSkill interface with path and source info\n- Update context show/activate commands to d\n[…]\n2. User override: ~/.claude/mcp-configs/<squad>.json\n3. Generated: ~/.claude/mcp-configs/<squad>-generated.json\n4. Fallback: ~/.claude.json\n\nCloses #109\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(context): add squad-scoped skills and MCP servers",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-29T13:34:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1246715e8ffed501dd98822e6d90225e60b1e42c",
          "body": "…and (#245)\n\n* fix(docker): add REDIS_URL to scheduler-api for event buffer\n\nThe event buffer requires Redis connection. Added REDIS_URL environment\nvariable and redis health dependency to scheduler-api service.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <nor\n[…]\ne estimates\n\nCloses #225\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(dashboard): add ROI metrics, cost projections, and baseline comm…",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-29T13:27:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "52a648d0dff06f5255c737d1d40988d5187e2a4a",
          "body": "…injection test (#253)\n\n- Skip tests for saveBaseline, getLatestBaseline, getBaselineByName, listBaselines\n  These functions were never implemented in db.ts (ROI dashboard feature pending)\n- Fix postgres-source.test.ts SQL injection assertion\n  The original test incorrectly checked for substring pre\n[…]\nsolver <engineering-issues-solver@agents-squads.com>\n\nAgent: engineering/issues-solver\nSquad: engineering\nModel: claude-opus-4-5-20251101\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>",
          "is_bot": false,
          "headline": "fix(tests): skip tests for unimplemented baseline functions, fix SQL …",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-29T13:26:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "90d3059d90e3dd045c368b96d9da6cf5a89b7856",
          "body": "Agents now see their target repo from SQUAD.md Output section:\n- Target repo (e.g., `agents-squads/squads-cli`)\n- Code/Tests/Docs paths\n- Clear instruction: \"NOT hq - create PRs to this repo\"\n\nThis ensures agents create work products in the correct repo,\nnot just update memory in hq.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(run): inject Output section with target repo into agent context",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-29T03:43:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "bc6e7bc45a6fe4be6f1072e818a981832449254e",
          "body": "Breaking change: `squads run` now runs in foreground by default instead\nof background. This gives users immediate visibility into agent work.\n\nChanges:\n- Foreground is now default (--background/-b for old behavior)\n- Added --watch/-w mode: background + tail log\n- Status updates on completion (comple\n[…]\n agent execution tracking issue where users saw nothing\nand status stayed \"running\" forever.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(run): foreground default, status tracking, auto-commit",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-29T03:35:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "586641d0a36a1919d9a23e4e6917e27d21ef2fbe",
          "body": "* fix(docker): add REDIS_URL to scheduler-api for event buffer\n\nThe event buffer requires Redis connection. Added REDIS_URL environment\nvariable and redis health dependency to scheduler-api service.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropi\n[…]\nttps://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test: add comprehensive database operation tests (#246)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-29T02:18:03Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3362aa9fe98c261ed89fce057c877caa54f91460",
          "body": "* fix(docker): add REDIS_URL to scheduler-api for event buffer\n\nThe event buffer requires Redis connection. Added REDIS_URL environment\nvariable and redis health dependency to scheduler-api service.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropi\n[…]\ndependencies.\n\nCo-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test: add comprehensive tests for core commands (#226) (#244)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-29T02:18:00Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2f66fe25b0482f9b14a308395442a4ddf5872b23",
          "body": "Extends model routing to support both Anthropic and Google (Gemini) models:\n\n- resolveModel() now accepts full model names (claude-opus-4-5, gemini-2.5-flash)\n- getClaudeModelAlias() maps full names to Claude Code aliases (opus/sonnet/haiku)\n- detectProviderFromModel() routes to appropriate executor\n[…]\nonnet-4\n    cheap: gemini-2.5-flash  # Cheap evals via Gemini\n    expensive: claude-opus-4-5\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(run): multi-provider model routing",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-28T20:17:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d7029a84142859689cc9938a10e28403b889b7b7",
          "body": "Routes model selection based on squad context.model config:\n- evaluation (critics) → cheap model (haiku)\n- lead (orchestrators) → expensive model (opus)\n- research/execution → default model (sonnet)\n\nExplicit --model flag always takes precedence over auto-routing.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(run): enforce model routing from squad context",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-28T19:51:19Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2b02f98a42ae5346fa07cae6b4ed16c66932c8b9",
          "body": "The event buffer requires Redis connection. Added REDIS_URL environment\nvariable and redis health dependency to scheduler-api service.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(docker): add REDIS_URL to scheduler-api for event buffer",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-28T12:55:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7d7431192ede1d33a6ddfc804702af96da7bc3d1",
          "body": "- Add goal progress to header (3/46 goals done)\n- Replace MEMORY column with GOALS (X/Y per squad)\n- Add Sprint Goals section showing top 5 active goals\n- Goals with progress appear first\n- Add --no-goals flag to hide goals section\n\nCloses #240\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(status): add sprint goals to status view",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-28T01:36:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2b62a923881c808b227a099d970d2dd17d5e639b",
          "body": "Moved to .github/workflows-disabled/ until revenue covers costs.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: disable workflows to reduce GitHub Actions costs",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-27T13:28:37Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "268edd398b56674cff996aecdf329355c364983e",
          "body": "Detects API version and displays appropriately:\n- New API: full time-windowed stats (1h, 24h, recent activity)\n- Old API: extracts running/queued from executions_24h\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(trigger): backward compatible with old API format",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-27T13:12:11Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "cf126bc7decb5afcb2e2423d16015ea8eb845b3e",
          "body": "Separates current vs historical execution data:\n- Now: running, queued (real-time state)\n- Last 1h: recent completions with success rate\n- Last 24h: daily stats with success rate\n- Recent Activity: last 5 executions with duration\n\nFixes #238 - makes system health immediately visible\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(trigger): show time-windowed execution stats",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-27T13:08:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "179f5ac67ab6ec763b4a2964c9e06af5da95c26e",
          "body": "Validates that all CLI command outputs use only colors from our\ndefined brand palette (terminal.ts). Tests include:\n\n- 25 test cases covering all major commands\n- RGB color extraction from ANSI escape codes\n- Gradient interpolation validation (for progress bars, sparklines)\n- Palette definition with\n[…]\ndateColors(): Check output compliance\n- isValidGradientColor(): Validate interpolated colors\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test: add color palette compliance tests for all commands",
          "author_name": "kokevidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-27T03:20:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f819690cf4e83921d148b7be05c6432954379b5a",
          "body": "* fix: use cross-platform paths and add platform checks\n\nCloses #206\n\n- autonomous.ts: Use os.tmpdir() instead of hardcoded /tmp/ for PID and log files\n- cron.ts: Add platform check with warning for non-macOS systems\n- cron.ts: Update description to clarify macOS-only nature\n\nCo-Authored-By: cli/iss\n[…]\ne-solver <cli-issue-solver@agents-squads.com>\n\nAgent: cli/issue-solver\nSquad: cli\nExecution: 2026-01-25\nModel: claude-opus-4-5\n\n---------\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>",
          "is_bot": false,
          "headline": "fix: use cross-platform paths in cron/autonomous commands (#207)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-26T13:05:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e68cc278ae8aacb6d1a3397f4dfb9b793d5f0771",
          "body": "- On Max plan: Show daily spend without confusing percentage (costs are informational)\n- On usage plan: Show budget bar capped at 100%, with clear \"target\" labeling\n- Add contextual guidance when over target instead of alarming red bar\n\nBefore: \"$141.81/50 today ████████████████████ 284%\" (confusing\n[…]\nionable guidance\n\nCloses #121\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ux: clarify dashboard budget display for different plans (#198)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-25T17:13:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3be93bc486246ae5dcc1d819cdf8589c4138314d",
          "body": "Closes #50\n\nAdds .showHelpAfterError() to the Commander program configuration.\nWhen users run commands with missing required arguments, they now see\nhelpful usage information instead of just the raw error.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ux: show help after missing required arguments (#197)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-25T17:13:19Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a50c3789144369456c417831cdb9fb1b9b45dc74",
          "body": "Closes #31\n\nWraps the trigger list fetch call in try/catch to detect connection\nrefused errors. Instead of showing a raw stack trace, displays a\nhelpful error message with recovery steps.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: handle scheduler offline error in trigger list (#196)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-25T17:13:15Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7771f2ab6103f2f51c84f77d251b437d8b8defc0",
          "body": "Remove hardcoded fallback credentials for local PostgreSQL database.\nDatabase configuration now requires explicit SQUADS_DATABASE_URL env var.\nAll database functions gracefully handle missing configuration by\nreturning null/empty results instead of failing.\n\nCloses #155\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "security: remove hardcoded database credentials from db.ts (#195)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-25T17:13:13Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5725380e766f437aa3a4169113f3ed96ce2fa887",
          "body": "Closes #150\n\nAdded JSDoc documentation to all exported functions describing their\npurpose, parameters, and return values. Follows the style established\nin goal-parser.ts.\n\nFunctions documented:\n- findSquadsDir\n- findProjectRoot\n- hasLocalInfraConfig\n- listSquads\n- listAgents\n- parseSquadFile\n- loadSquad\n- loadAgentDefinition\n- addGoalToSquad\n- updateGoalInSquad\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add JSDoc comments to squad-parser.ts exported functions (#194)",
          "author_name": "Jorge Vidaurre",
          "author_login": "kokevidaurre",
          "committed_at": "2026-01-25T17:13:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        }
      ],
      "releases_count": 12,
      "commits_last_year": 313,
      "latest_release_at": "2026-07-07T19:37:14Z",
      "latest_release_tag": "v0.9.0",
      "releases_from_tags": false,
      "days_since_last_push": 2,
      "active_weeks_last_year": 16,
      "days_since_latest_release": 20,
      "mean_days_between_releases": 11.2
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 87,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "squads-cli",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "ai-workforce",
            "workforce",
            "autonomous-agents",
            "agent-framework",
            "ai-automation",
            "crewai-alternative",
            "autogen-alternative",
            "langgraph-alternative",
            "multi-agent",
            "orchestration",
            "ai-agents",
            "persistent-memory",
            "squads",
            "cli",
            "claude",
            "claude-code",
            "anthropic",
            "mcp",
            "agent-sdk",
            "business-automation"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/squads-cli",
          "is_deprecated": false,
          "latest_version": "0.9.0",
          "repository_url": "https://github.com/agents-squads/squads-cli",
          "versions_count": 29,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 1176,
          "first_published_at": "2026-01-03T00:44:40.543000Z",
          "latest_published_at": "2026-07-07T19:37:43.930000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 20
        }
      ]
    },
    "popularity": {
      "forks": 2,
      "stars": 49,
      "watchers": 1,
      "fork_history": {
        "days": [
          {
            "date": "2026-03-11",
            "count": 1
          },
          {
            "date": "2026-03-28",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 2,
        "total_forks": 2
      },
      "star_history": null,
      "open_issues_and_prs": 56
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [
        "openapi/openapi.json"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 120426,
      "source_files_sampled": 289,
      "oversized_source_files": 2,
      "agent_instruction_files": [
        "AGENTS.md",
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 4781
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 97,
        "malicious_count": 0,
        "assessed_package": "npm:squads-cli@0.9.0",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@anthropic-ai/sdk",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.71.2"
        },
        {
          "name": "chalk",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.3.0"
        },
        {
          "name": "chrono-node",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.9.0"
        },
        {
          "name": "commander",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^12.1.0"
        },
        {
          "name": "dotenv",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^17.2.3"
        },
        {
          "name": "gray-matter",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.0.3"
        },
        {
          "name": "inquirer",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^9.2.12"
        },
        {
          "name": "minimatch",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^10.2.1"
        },
        {
          "name": "open",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.0.0"
        },
        {
          "name": "ora",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.0.1"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@anthropic-ai/sdk",
            "direct": true,
            "version": "0.71.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": true,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": true,
            "version": "5.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "chrono-node",
            "direct": true,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": true,
            "version": "12.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": true,
            "version": "14.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": true,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "dotenv",
            "direct": true,
            "version": "17.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "dotenv",
            "direct": true,
            "version": "8.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "gray-matter",
            "direct": true,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "inquirer",
            "direct": true,
            "version": "9.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": true,
            "version": "10.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": true,
            "version": "3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": true,
            "version": "9.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "open",
            "direct": true,
            "version": "11.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ora",
            "direct": true,
            "version": "5.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "ora",
            "direct": true,
            "version": "8.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/runtime",
            "direct": false,
            "version": "7.28.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@bcoe/v8-coverage",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/apply-release-plan",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/assemble-release-plan",
            "direct": false,
            "version": "6.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/changelog-git",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/changelog-github",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/cli",
            "direct": false,
            "version": "2.30.0",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/config",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/errors",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/get-dependents-graph",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/get-github-info",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/get-release-plan",
            "direct": false,
            "version": "4.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/get-version-range-type",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/git",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/logger",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/parse",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/pre",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/read",
            "direct": false,
            "version": "0.6.7",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/should-skip-package",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/types",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/types",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@changesets/write",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/eslint-utils",
            "direct": false,
            "version": "4.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/regexpp",
            "direct": false,
            "version": "4.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-array",
            "direct": false,
            "version": "0.21.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-helpers",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/core",
            "direct": false,
            "version": "0.17.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/eslintrc",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "9.39.2",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/object-schema",
            "direct": false,
            "version": "2.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/plugin-kit",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "@hey-api/codegen-core",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@hey-api/json-schema-ref-parser",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@hey-api/openapi-ts",
            "direct": false,
            "version": "0.97.3",
            "ecosystem": "npm"
          },
          {
            "name": "@hey-api/shared",
            "direct": false,
            "version": "0.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "@hey-api/spec-types",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@hey-api/types",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/core",
            "direct": false,
            "version": "0.19.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/node",
            "direct": false,
            "version": "0.16.7",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/module-importer",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/retry",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/external-editor",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/figures",
            "direct": false,
            "version": "1.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/gen-mapping",
            "direct": false,
            "version": "0.3.13",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.31",
            "ecosystem": "npm"
          },
          {
            "name": "@jsdevtools/ono",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@lukeed/ms",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@manypkg/find-root",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@manypkg/get-packages",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.scandir",
            "direct": false,
            "version": "2.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.stat",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.walk",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.133.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chai",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/deep-eql",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json-schema",
            "direct": false,
            "version": "7.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "12.20.55",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.19.27",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/eslint-plugin",
            "direct": false,
            "version": "8.56.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/parser",
            "direct": false,
            "version": "8.56.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/project-service",
            "direct": false,
            "version": "8.56.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "8.56.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/tsconfig-utils",
            "direct": false,
            "version": "8.56.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/type-utils",
            "direct": false,
            "version": "8.56.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "8.56.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "8.56.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/utils",
            "direct": false,
            "version": "8.56.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "8.56.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/coverage-v8",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-colors",
            "direct": false,
            "version": "4.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "4.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "any-promise",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "array-union",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ast-v8-to-istanbul",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "base64-js",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "better-path-resolve",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "bl",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "buffer",
            "direct": false,
            "version": "5.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "bundle-name",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "bundle-require",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "c12",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "cac",
            "direct": false,
            "version": "6.7.14",
            "ecosystem": "npm"
          },
          {
            "name": "callsites",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "chardet",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-cursor",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-cursor",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-spinners",
            "direct": false,
            "version": "2.9.2",
            "ecosystem": "npm"
          },
          {
            "name": "cli-width",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "clone",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "color-support",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "confbox",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "confbox",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "consola",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "dataloader",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "deep-is",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "default-browser",
            "direct": false,
            "version": "5.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "default-browser-id",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "defaults",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-lazy-prop",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "defu",
            "direct": false,
            "version": "6.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "destr",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "detect-indent",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "dir-glob",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "10.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "enquirer",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "9.39.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "8.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "4.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "espree",
            "direct": false,
            "version": "10.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "esprima",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "esquery",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "esrecurse",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "exsolve",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "extend-shallow",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "extendable-error",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-glob",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-json-stable-stringify",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-levenshtein",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "fastq",
            "direct": false,
            "version": "1.20.1",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "file-entry-cache",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fix-dts-default-cjs-exports",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "flat-cache",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "flatted",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "fs-extra",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "fs-extra",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "get-east-asian-width",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-tsconfig",
            "direct": false,
            "version": "4.14.0",
            "ecosystem": "npm"
          },
          {
            "name": "giget",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "14.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "globby",
            "direct": false,
            "version": "11.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "html-escaper",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "human-id",
            "direct": false,
            "version": "4.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "ieee754",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "7.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "import-fresh",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-docker",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-extendable",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-in-ssh",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-inside-container",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-interactive",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-interactive",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-subdir",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-unicode-supported",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-unicode-supported",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-unicode-supported",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-windows",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-wsl",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-coverage",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-report",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-reports",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "jiti",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "joycon",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "10.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "3.14.2",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-buffer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-to-ts",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-stable-stringify-without-jsonify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsonfile",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "keyv",
            "direct": false,
            "version": "4.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "kind-of",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "levn",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-android-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-freebsd-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-arm64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-x64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lilconfig",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "lines-and-columns",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "load-tsconfig",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.merge",
            "direct": false,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.startcase",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "log-symbols",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "log-symbols",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "magicast",
            "direct": false,
            "version": "0.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "make-dir",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge2",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromatch",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-function",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mlly",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "mri",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mute-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mz",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.12",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-fetch",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "object-assign",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "ohash",
            "direct": false,
            "version": "2.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "optionator",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "outdent",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-filter",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-map",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-try",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "package-manager-detector",
            "direct": false,
            "version": "0.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "parent-module",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-type",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "perfect-debounce",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "pify",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "pirates",
            "direct": false,
            "version": "4.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-types",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-types",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.15",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-load-config",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "powershell-utils",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "prelude-ls",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "prettier",
            "direct": false,
            "version": "2.8.8",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "quansync",
            "direct": false,
            "version": "0.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "queue-microtask",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "rc9",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "read-yaml-file",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "3.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-pkg-maps",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "restore-cursor",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "restore-cursor",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "reusify",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "run-applescript",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "run-async",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "run-parallel",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "rxjs",
            "direct": false,
            "version": "7.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "section-matter",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-command",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-regex",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "siginfo",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "slash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.7.6",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "spawndamnit",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "sprintf-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "stackback",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "stdin-discarder",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "string_decoder",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "7.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "strip-bom",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-bom-string",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "sucrase",
            "direct": false,
            "version": "3.35.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "term-size",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "thenify",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "thenify-all",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinybench",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tinyrainbow",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tr46",
            "direct": false,
            "version": "0.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "tree-kill",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ts-algebra",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ts-api-utils",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "ts-interface-checker",
            "direct": false,
            "version": "0.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "tsup",
            "direct": false,
            "version": "8.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-check",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "typescript-eslint",
            "direct": false,
            "version": "8.56.0",
            "ecosystem": "npm"
          },
          {
            "name": "ufo",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "universalify",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "uri-js",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "util-deprecate",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "wcwidth",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-url",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "why-is-node-running",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "word-wrap",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "wsl-utils",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "yoctocolors-cjs",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 474,
        "direct_count": 17,
        "indirect_count": 457
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 464,
        "open_issues": 56,
        "closed_ratio": 0.912,
        "closed_issues": 578,
        "closed_unmerged_prs": 103
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "kokevidaurre",
          "commits": 303,
          "avatar_url": "https://avatars.githubusercontent.com/u/3512039?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "automation.yml",
        "ci.yml",
        "close-linked-issues.yml",
        "deprecate.yml",
        "publish.yml",
        "release.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        "eslint.config.js"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "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": 8,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "22 out of 22 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 1,
            "reason": "Found 3/21 approved changesets -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 6,
            "reason": "8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6",
            "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": 4,
            "reason": "dependency not pinned by hash detected -- score normalized to 4",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool is run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 5,
            "reason": "5 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "b0932805ea27c5d91db87a10fe71bdae5acc3a0f",
        "ran_at": "2026-07-28T03:32:27Z",
        "aggregate_score": 5.6,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-27T19:53:26Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-25T17:01:54Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 643,
          "created_at": "2026-03-27T23:14:01Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 662,
          "created_at": "2026-03-28T19:17:33Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 691,
          "created_at": "2026-03-31T04:44:45Z",
          "last_comment_at": "2026-03-31T05:11:22Z",
          "last_comment_author": "agents-squads"
        },
        {
          "number": 702,
          "created_at": "2026-03-31T17:24:19Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 703,
          "created_at": "2026-03-31T17:24:41Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 706,
          "created_at": "2026-03-31T17:25:51Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 707,
          "created_at": "2026-03-31T17:26:17Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 741,
          "created_at": "2026-04-14T04:51:30Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 771,
          "created_at": "2026-05-12T02:05:24Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 775,
          "created_at": "2026-05-13T15:36:06Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 776,
          "created_at": "2026-05-25T19:35:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 838,
          "created_at": "2026-06-11T01:50:37Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 871,
          "created_at": "2026-06-12T04:25:17Z",
          "last_comment_at": "2026-06-12T16:04:01Z",
          "last_comment_author": "kokevidaurre"
        },
        {
          "number": 873,
          "created_at": "2026-06-12T15:06:53Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 874,
          "created_at": "2026-06-12T16:04:00Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 876,
          "created_at": "2026-06-13T01:00:35Z",
          "last_comment_at": "2026-06-13T01:19:01Z",
          "last_comment_author": "kokevidaurre"
        },
        {
          "number": 886,
          "created_at": "2026-06-13T01:46:28Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 890,
          "created_at": "2026-06-14T14:16:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 893,
          "created_at": "2026-06-15T15:52:25Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 895,
          "created_at": "2026-06-15T15:56:05Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/agents-squads/squads-cli",
    "host": "github.com",
    "name": "squads-cli",
    "owner": "agents-squads"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 68,
      "inputs": {
        "security": 65,
        "vitality": 83,
        "community": 56,
        "governance": 52,
        "engineering": 86
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 83,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 71,
            "inputs": {
              "commits_last_year": 313,
              "human_commit_share": 0.91,
              "days_since_last_push": 2,
              "active_weeks_last_year": 16
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 2 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "16/52 weeks with commits",
                "points": 11.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 16
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "313 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 313
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 12,
              "latest_release_tag": "v0.9.0",
              "releases_from_tags": false,
              "days_since_latest_release": 20,
              "mean_days_between_releases": 11.2
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "12 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 20 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 20
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~11.2 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 11.2
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "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": 20,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 20 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 20
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 56,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 27,
            "inputs": {
              "forks": 2,
              "stars": 49,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "49 stars",
                "points": 27.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 49
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "2 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 51,
            "inputs": {
              "packages": [
                "squads-cli"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 1176
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "1,176 downloads/month across npm",
                "points": 40.9,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 1176,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 52,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 10,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "merged_prs": 464,
              "open_issues": 56,
              "closed_issues": 578,
              "issue_closed_ratio": 0.912,
              "closed_unmerged_prs": 103
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "91% of issues closed",
                "points": 42.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 91
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "464/567 decided PRs merged",
                "points": 31.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 464,
                      "decided": 567
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 3/21 approved changesets -- score normalized to 1",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 41,
            "inputs": {
              "followers": 4,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "agents-squads",
              "public_repos": 3,
              "account_age_days": 229
            },
            "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": "4 followers of agents-squads",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 4,
                      "login": "agents-squads"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "3 public repos, account ~0 yr old",
                "points": 5.6,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 3
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 0
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "squads-cli"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 20
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 20 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 20
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "29 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 29
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "excellent",
        "name": "Engineering Quality",
        "value": 86,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "6 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "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": "eslint.config.js",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.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": "22 out of 22 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "agent-framework",
                "ai-agents",
                "cli",
                "developer-tools",
                "multi-agent",
                "orchestration",
                "persistent-memory",
                "agentic-ai",
                "ai-workforce",
                "anthropic",
                "autonomous-agents",
                "claude",
                "llm",
                "self-improving-ai",
                "typescript"
              ],
              "has_wiki": false,
              "homepage": "https://agents-squads.com",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://agents-squads.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": "15 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 15
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 65,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "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": 56,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 5.6
            },
            "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": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "22 out of 22 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 3/21 approved changesets -- score normalized to 1",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6",
                "points": 4.5,
                "status": "partial",
                "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 4",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "5 existing vulnerabilities detected",
                "points": 3.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:squads-cli@0.9.0 runtime dependency closure — what installing the published package pulls in — 97 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:squads-cli@0.9.0",
                  "assessed": 97
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 97,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 97,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 74,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.967,
              "agent_instruction_files": [
                "AGENTS.md",
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 4781
            },
            "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": "88 of 91 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 88,
                      "sampled": 91
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "tsconfig.json"
              ],
              "agent_commit_share": 0.79,
              "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": "eslint.config.js",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.js"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "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": "79 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 79,
                      "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 4",
                "points": 4,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 120426,
              "source_files_sampled": 289,
              "oversized_source_files": 2
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "2/289 source files over 60KB",
                "points": 54.6,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 289,
                      "oversized": 2
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [],
              "has_mcp_signal": false,
              "api_schema_files": [
                "openapi/openapi.json"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "openapi/openapi.json",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "openapi/openapi.json"
                    }
                  }
                ],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-28T03:32:44.354248Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/agents-squads/squads-cli.svg",
  "full_name": "agents-squads/squads-cli",
  "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.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistikennpm.