Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 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 estrellas⑂ 2 forksdesde dic 2025Ver en GitHub ↗

agents-squads/squads-cli tiene un índice de salud de 68 sobre 100, lo que lo sitúa en la banda Moderado. Su puntuación más alta es Engineering Quality (86/100) y la más baja, Sustainability & Governance (52/100). Se actualizó por última vez hace 2 días. Una sola persona concentra la mayor parte del trabajo reciente.

68
global / 100
Moderado

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

68
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

Titularidad

Agents SquadsOrganización
4 seguidores3 repositorios públicosdesde dic 2025

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

Ecosistemas de paquetes

Métricas por categoría

Vitalidad

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

83Bueno · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 2 días
11.1/36Cadencia de commits — 16/52 semanas con commits
18/18Volumen de commits — 313 commits en el último año
6/10OpenSSF Scorecard: Maintained — 8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6
Datos de entrada utilizados
commits_last_year313
human_commit_share0,91
days_since_last_push2
active_weeks_last_year16
Cómo se puntúa
27/27Publica versiones — 12 versiones publicadas
36/36Recencia de las versiones — última versión hace 20 días
27/27Cadencia de publicación — una versión cada ~11,2 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count12
latest_release_tagv0.9.0
releases_from_tagsno
days_since_latest_release20
mean_days_between_releases11,2
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

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

56Moderado · 18% del índice global
Cómo se puntúa
27.3/60Estrellas — 49 estrellas
0/25Forks — 2 forks
0/15Observadores — 1 observadores
Datos de entrada utilizados
forks2
stars49
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (MIT)
18/18Guía CONTRIBUTING
13.5/13.5Código de conducta
0/7.2Plantilla de issues
6.3/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributing
has_issue_templateno
has_code_of_conduct
has_pull_request_template
Cómo se puntúa
40.9/80Descargas mensuales — 1176 descargas/mes en npm
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packagessquads-cli
dependents
ecosystemsnpm
total_downloads
monthly_downloads1176
Excluidos de la puntuación (sin datos o no aplicable): Dependientes en el registro. Los pesos restantes se han renormalizado.

Sostenibilidad y Gobernanza

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

52Moderado · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
0/22.5Distribución de commits — el principal contribuyente firma el 100% de los commits
1.4/13.5Amplitud de contribuyentes — 1 contribuyentes
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Datos de entrada utilizados
bus_factor1
contributors_sampled1
top_contributor_share1
Cómo se puntúa
42.6/46.8Resolución de issues — 91% de issues cerradas
31.3/38.3Aceptación de PR — 464/567 PR decididos fusionados
1.5/15OpenSSF Scorecard: Code-Review — Found 3/21 approved changesets -- score normalized to 1
Datos de entrada utilizados
merged_prs464
open_issues56
closed_issues578
issue_closed_ratio0,912
closed_unmerged_prs103
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
5/25Alcance del propietario — 4 seguidores de agents-squads
5.6/25Trayectoria — 3 repos públicos, cuenta de ~0 años
Datos de entrada utilizados
followers4
owner_typeOrganization
is_verified
owner_loginagents-squads
public_repos3
account_age_days229
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en npm
35/35Recencia de publicación — última publicación hace 20 días
20/20Historial de versiones — 29 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagessquads-cli
ecosystemsnpm
any_deprecatedno
min_days_since_publish20

Calidad de Ingeniería

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

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

Documentación

90Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — https://agents-squads.com
10/10Descripción del repositorio
10/10Topics — 15 topics
0/10Wiki
Datos de entrada utilizados
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_wikino
homepagehttps://agents-squads.com
has_readme
has_docs_dir
has_description

Seguridad

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

65Moderado · 16% del índice global
Cómo se puntúa
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.5Licencia — 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 — sin datos
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
3.8/7.5Vulnerabilities — 5 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate5,6
Excluidos de la puntuación (sin datos o no aplicable): signed_releases. Los pesos restantes se han renormalizado.
Cómo se puntúa
35/35Dependencias directas libres de avisos conocidos — ninguna dependencia directa tiene un aviso conocido
25/25Dependencias indirectas libres de avisos conocidos — ninguna dependencia indirecta tiene un aviso conocido
0/40Sin avisos pendientes — ningún aviso tiene fecha de publicación
Datos de entrada utilizados
sourceosv
advisories0
affected_packages0
assessed_packages97
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Excluidos de la puntuación (sin datos o no aplicable): Sin avisos pendientes. Los pesos restantes se han renormalizado. Se cotejó el cierre de dependencias en tiempo de ejecución de npm:squads-cli@0.9.0 —lo que arrastra la instalación del paquete publicado—: 97 paquetes. No se analiza la alcanzabilidad.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

74Bueno · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — AGENTS.md, CLAUDE.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 88 de 91 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,967
agent_instruction_filesAGENTS.md, CLAUDE.md
agent_instruction_max_bytes4781
Cómo se puntúa
0/18Arranque con un solo comando
22/22Pruebas automatizadas
11/11Configuración de lint / formato — eslint.config.js
11/11Verificación estática de tipos — tsconfig.json
10/10Entorno reproducible — Dockerfile, lockfile
10/10Práctica demostrada con agentes — 79 de los últimos 100 commits con autoría o crédito de agente
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
4/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 4
Datos de entrada utilizados
has_nixno
has_tests
lockfilespackage-lock.json
has_dockerfile
typed_language
bootstrap_files
has_devcontainerno
has_linter_config
typecheck_configstsconfig.json
agent_commit_share0,79
toolchain_manifests
dependency_bot_commit_share0
Cómo se puntúa
45/45Código verificable por tipos — TypeScript (tipado estático)
54.6/55Tamaños de archivo manejables — 2/289 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageTypeScript
largest_source_bytes120.426
source_files_sampled289
oversized_source_files2
Cómo se puntúa
40/40Esquema de API (OpenAPI/GraphQL/proto) — openapi/openapi.json
0/20Servidor MCP
0/40Ejemplos ejecutables
Datos de entrada utilizados
example_dirs
has_mcp_signalno
api_schema_filesopenapi/openapi.json

Datos clave

49estrellas de GitHub
1contribuidores
313commits en los últimos 12 meses
2días desde el último push
12versiones publicadas
1factor bus
56issues abiertas
npmecosistemas de paquetes

Advertencias de recopilación de datos

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

Más detalle

Historial de estrellas y forks 0 ★ / 2 ⇿
0Estrellas
2Forks
1Versiones

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

111222212026-032026-032026-03
Mayor 0Menor 0Parche 1
OpenSSF Scorecard 5.6 / 10
5.6agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).Scorecard v5.5.0 · 2026-07-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
n/dSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
5Vulnerabilities5 existing vulnerabilities detected
Dependencias directas 10
RegistroPaqueteRestricción de versiónManifiesto
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
Todas las dependencias 474

Conjunto completo de dependencias resueltas según el grafo de dependencias de GitHub: 17 paquetes directos y 457 indirectos (transitivos). El cierre transitivo es completo cuando el repositorio incluye un lockfile.

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

Instalar npm:squads-cli@0.9.0 arrastra 97 paquetes, directos y transitivos: 0 tienen avisos conocidos, de los cuales 0 son dependencias directas.

Ningún aviso conocido afecta a las dependencias evaluadas.

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

Informe JSON sin procesar legible por máquina
{
  "data": {
    "repo": {
      "topics": [
        "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"
}

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

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

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