Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.27.0 · метрики 1.13.0 · 2026-07-27 20:48 UTC

goosewobbler / releasekit

Composable, CI-native release tooling: semantic versioning from Conventional Commits, changelogs/notes, and publishing to npm, crates.io & pub.dev — registry-agnostic, more ecosystems on the way.

TypeScriptMIT★ 1 зірка⑂ 0 форківз лют. 2026 р.Переглянути на GitHub ↗

goosewobbler/releasekit має індекс здоров’я 68 зі 100, що відповідає смузі «Помірний». Найвищий показник — Vitality (87/100), найнижчий — Community & Adoption (51/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконує один учасник.

68
загалом / 100
Помірний

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

68
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Власність

goosewobblerОсобистий обліковий запис
23 підписники105 публічних репозиторіївз жовт. 2010 р.

Цей репозиторій належить особистому обліковому запису. Проєкт з єдиним власником несе більший ризик безперервності, ніж підтримуваний організацією.

Пакетні екосистеми

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
npm@releasekit/notes0.41.27 8891396 днів томуchangelogrelease-notesllmtemplatecli
npm@releasekit/publish0.41.27 9951396 днів томуpublishnpmcargoreleaseci
npm@releasekit/release0.41.27 7581506 днів томуversionsemvergitpackage
npm@releasekit/version0.41.27 8531396 днів томуversionsemvergitpackage

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

87Відмінний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
13.8/36Ритм комітів — 20/52 тижнів із комітами
18/18Обсяг комітів — 836 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year836
human_commit_share0,76
days_since_last_push0
active_weeks_last_year20
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 100 релізів
36/36Свіжість релізів — останній реліз 6 дн. тому
27/27Ритм релізів — реліз кожні ~2,4 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count100
latest_release_tagv0.41.2
releases_from_tagsні
days_since_latest_release6
mean_days_between_releases2,4
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

51Помірний · 18% загального індексу
Як обчислюється оцінка
0/60Зірки — 1 зірок
0/25Форки — 0 форків
0/15Спостерігачі — 0 спостерігачів
Використані вхідні дані
forks0
stars1
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (MIT)
18/18Настанови CONTRIBUTING
13.5/13.5Кодекс поведінки
0/7.2Шаблон issue
6.3/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingтак
has_issue_templateні
has_code_of_conductтак
has_pull_request_templateтак
Як обчислюється оцінка
60/80Щомісячні завантаження — 31 495 завантажень/місяць у npm
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packages@releasekit/notes, @releasekit/publish, @releasekit/release, @releasekit/version
dependents
ecosystemsnpm
total_downloads
monthly_downloads31 495
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

57Помірний · 24% загального індексу
Як обчислюється оцінка
9/54Бас-фактор — на 1 контриб’ютор(ів) припадає половина всіх комітів
0/22.5Розподіл комітів — головний контриб’ютор — автор 100% комітів
1.4/13.5Широта контриб’юторів — 1 контриб’юторів
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Використані вхідні дані
bus_factor1
contributors_sampled1
top_contributor_share1
Як обчислюється оцінка
43.3/46.8Вирішення issue — закрито 93% issue
34.3/38.3Прийняття PR — злито 397/443 вирішених PR
0/15OpenSSF Scorecard: Code-Review — Found 0/21 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs397
open_issues12
closed_issues152
issue_closed_ratio0,927
closed_unmerged_prs46
Як обчислюється оцінка
10/30Підтримка власника — особистий (користувацький) обліковий запис
0/20Верифікований домен — не застосовно до користувацьких облікових записів
9.9/25Охоплення власника — 23 підписників у goosewobbler
25/25Послужний список — 105 публічних репозиторіїв, вік облікового запису ~15 р.
Використані вхідні дані
followers23
owner_typeUser
is_verified
owner_logingoosewobbler
public_repos105
account_age_days5 771
Виключено з оцінювання (немає даних або не застосовно): Верифікований домен. Залишкові ваги перенормовано.

Супровід пакетів

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 4 пакет(ів) у npm
35/35Свіжість публікацій — остання публікація 6 дн. тому
20/20Історія версій — 150 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packages@releasekit/notes, @releasekit/publish, @releasekit/release, @releasekit/version
ecosystemsnpm
any_deprecatedні
min_days_since_publish6

Інженерна якість

Чи наявні базові інженерні практики та документація?

83Добрий · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 24 процес(ів) CI
24/24Наявні тести
16/16Конфігурація лінтера — eslint.config.js
0/9.6Pre-commit-хуки
6.4/6.4.editorconfig
18/20OpenSSF Scorecard: CI-Tests — 28 out of 30 merged PRs checked by a CI test -- score normalized to 9
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigтак
has_linter_configтак
has_precommit_configні
Як обчислюється оцінка
30/30README
25/25Каталог документації
0/15Сайт документації / домашня сторінка
10/10Опис репозиторію
0/10Теми
10/10Wiki
Використані вхідні дані
topics
has_wikiтак
homepage
has_readmeтак
has_docs_dirтак
has_descriptionтак

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

59Помірний · 16% загального індексу

Стан безпеки

52Помірний
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.2/2.5CI-Tests — 28 out of 30 merged PRs checked by a CI test -- score normalized to 9
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/21 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Ліцензія — license file detected
7.5/7.5Maintained — 30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — немає даних
1/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
4.5/5SAST — SAST tool detected but not run on all commits
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — немає даних
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 11 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate5,2
Виключено з оцінювання (немає даних або не застосовно): packaging, signed_releases. Залишкові ваги перенормовано.
Як обчислюється оцінка
35/35Прямі залежності без відомих сповіщень — жодна пряма залежність не має відомих сповіщень
10/25Непрямі залежності без відомих сповіщень — уражено 1: brace-expansion 2.1.2 (high 7.5)
40/40Немає задавнених сповіщень — жодне сповіщення не є публічним довше за 90 дн.
Використані вхідні дані
sourceosv
advisories1
affected_packages1
assessed_packages49
unassessed_packages0
affected_by_severityhigh 1
direct_affected_packages0
Звірено з runtime-замиканням залежностей npm:@releasekit/notes@0.41.2 — тим, що тягне за собою встановлення опублікованого пакета, — 49 пакетів. Досяжність не аналізується.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

79Добрий · 0% загального індексу
Як обчислюється оцінка
45/45Інструкції для агентів — AGENTS.md, CLAUDE.md
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 76 з 76 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share1
agent_instruction_filesAGENTS.md, CLAUDE.md
agent_instruction_max_bytes1 703
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера — eslint.config.js
11/11Статична перевірка типів — packages/config/tsconfig.json, packages/core/tsconfig.json, packages/forge/tsconfig.json, packages/git/tsconfig.json, packages/notes/tsconfig.json, packages/publish/tsconfig.json, packages/release/tsconfig.json, packages/version/tsconfig.json, test/integration/tsconfig.json
10/10Відтворюване середовище — lockfile
10/10Підтверджена практика роботи з агентами — 76 з останніх 100 комітів створено агентом або з його зазначенням
8/8Автоматизоване супроводження — 12 з останніх 100 комітів — автоматичні оновлення залежностей
2/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
Використані вхідні дані
has_nixні
has_testsтак
lockfilespnpm-lock.yaml
has_dockerfileні
typed_languageтак
bootstrap_files
has_devcontainerні
has_linter_configтак
typecheck_configspackages/config/tsconfig.json, packages/core/tsconfig.json, packages/forge/tsconfig.json, packages/git/tsconfig.json, packages/notes/tsconfig.json, packages/publish/tsconfig.json, packages/release/tsconfig.json, packages/version/tsconfig.json, test/integration/tsconfig.json
agent_commit_share0,76
toolchain_manifests
dependency_bot_commit_share0,12
Як обчислюється оцінка
45/45Типізований код — TypeScript (статично типізована)
54.4/55Керовані розміри файлів — 4/398 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageTypeScript
largest_source_bytes154 639
source_files_sampled398
oversized_source_files4
Як обчислюється оцінка
0/40Схема API (OpenAPI/GraphQL/proto)
20/20Сервер MCP
40/40Придатні до запуску приклади — examples
Використані вхідні дані
example_dirsexamples
has_mcp_signalтак
api_schema_files

Ключові факти

1зірок GitHub
1контриб'юторів
836комітів за останні 12 місяців
0днів від останнього пушу
100релізів
1бас-фактор
12відкритих issue
npmпакетних екосистем

Попередження щодо збору даних

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

Докладніше

OpenSSF Scorecard 5.2 / 10
5.2сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).Scorecard v5.5.0 · 2026-07-27 20:47 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
9CI-Tests28 out of 30 merged PRs checked by a CI test -- score normalized to 9
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/21 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
н/дPackagingpackaging workflow not detected
2Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 2
9SASTSAST tool detected but not run on all commits
10Security-Policysecurity policy file detected
н/дSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities11 existing vulnerabilities detected
Прямі залежності 63
РеєстрПакетОбмеження версіїМаніфест
npm@releasekit/coreworkspace:*packages/config/package.json
npmjsonc-parsercatalog:packages/config/package.json
npmminimatchcatalog:packages/config/package.json
npmsmol-tomlcatalog:packages/config/package.json
npmyamlcatalog:packages/config/package.json
npmzodcatalog:packages/config/package.json
npm@manypkg/get-packagescatalog:packages/core/package.json
npmchalkcatalog:packages/core/package.json
npmminimatchcatalog:packages/core/package.json
npm@octokit/restcatalog:packages/forge/package.json
npm@anthropic-ai/sdk^0.112.4packages/notes/package.json
npm@octokit/restcatalog:packages/notes/package.json
npmchalkcatalog:packages/notes/package.json
npmcommandercatalog:packages/notes/package.json
npmejs^4.0.1packages/notes/package.json
npmhandlebars^4.7.9packages/notes/package.json
npmjsonc-parsercatalog:packages/notes/package.json
npmliquidjs^10.27.2packages/notes/package.json
npmminimatchcatalog:packages/notes/package.json
npmopenai^6.48.0packages/notes/package.json
npmsmol-tomlcatalog:packages/notes/package.json
npmyamlcatalog:packages/notes/package.json
npmzodcatalog:packages/notes/package.json
npmchalkcatalog:packages/publish/package.json
npmcommandercatalog:packages/publish/package.json
npmjsonc-parsercatalog:packages/publish/package.json
npmminimatchcatalog:packages/publish/package.json
npmsemvercatalog:packages/publish/package.json
npmsmol-tomlcatalog:packages/publish/package.json
npmyamlcatalog:packages/publish/package.json
npmzodcatalog:packages/publish/package.json
npm@manypkg/get-packagescatalog:packages/release/package.json
npm@octokit/restcatalog:packages/release/package.json
npm@releasekit/notesworkspace:*packages/release/package.json
npm@releasekit/publishworkspace:*packages/release/package.json
npm@releasekit/versionworkspace:*packages/release/package.json
npmchalkcatalog:packages/release/package.json
npmcommandercatalog:packages/release/package.json
npmconventional-changelog-angular^8.3.1packages/release/package.json
npmconventional-changelog-conventionalcommits^9.3.1packages/release/package.json
npmjsonc-parsercatalog:packages/release/package.json
npmminimatchcatalog:packages/release/package.json
npmsemvercatalog:packages/release/package.json
npmsmol-tomlcatalog:packages/release/package.json
npmyamlcatalog:packages/release/package.json
npmzodcatalog:packages/release/package.json
npm@manypkg/get-packages^3.1.0packages/version/package.json
npm@types/minimatch^5.1.2packages/version/package.json
npmchalkcatalog:packages/version/package.json
npmcommandercatalog:packages/version/package.json
npmconventional-changelog-angular^8.3.1packages/version/package.json
npmconventional-changelog-conventional-commitsnpm:conventional-changelog-conventionalcommits@^9.0.0packages/version/package.json
npmconventional-changelog-conventionalcommits^9.3.1packages/version/package.json
npmconventional-commits-filter^5.0.0packages/version/package.json
npmconventional-recommended-bump^11.2.0packages/version/package.json
npmfiglet^1.11.3packages/version/package.json
npmgit-semver-tags^8.0.1packages/version/package.json
npmjsonc-parsercatalog:packages/version/package.json
npmminimatch^10.2.5packages/version/package.json
npmsemvercatalog:packages/version/package.json
npmsmol-tomlcatalog:packages/version/package.json
npmyamlcatalog:packages/version/package.json
npmzodcatalog:packages/version/package.json
Усі залежності 415

Повний розв'язаний набір залежностей із графа залежностей GitHub: 51 прямих і 364 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

РеєстрПакетВерсіяЗв'язок
npm@anthropic-ai/sdk0.112.4пряма
npm@anthropic-ai/sdk^0.112.4пряма
npm@manypkg/get-packages3.1.0пряма
npm@manypkg/get-packages^3.1.0пряма
npm@manypkg/get-packagescatalog:пряма
npm@octokit/rest22.0.1пряма
npm@octokit/restcatalog:пряма
npm@types/minimatch5.1.2пряма
npm@types/minimatch^5.1.2пряма
npmchalk5.6.2пряма
npmchalkcatalog:пряма
npmcommander10.0.1пряма
npmcommander14.0.3пряма
npmcommander4.1.1пряма
npmcommandercatalog:пряма
npmconventional-changelog-angular8.3.1пряма
npmconventional-changelog-angular^8.3.1пряма
npmconventional-changelog-conventionalcommits9.1.0пряма
npmconventional-changelog-conventionalcommits9.3.1пряма
npmconventional-changelog-conventionalcommits^9.0.0пряма
npmconventional-changelog-conventionalcommits^9.3.1пряма
npmconventional-commits-filter5.0.0пряма
npmconventional-commits-filter^5.0.0пряма
npmconventional-recommended-bump11.2.0пряма
npmconventional-recommended-bump^11.2.0пряма
npmejs4.0.1пряма
npmejs^4.0.1пряма
npmfiglet1.11.3пряма
npmfiglet^1.11.3пряма
npmgit-semver-tags8.0.1пряма
npmgit-semver-tags^8.0.1пряма
npmhandlebars4.7.9пряма
npmhandlebars^4.7.9пряма
npmjsonc-parser3.3.1пряма
npmjsonc-parsercatalog:пряма
npmliquidjs10.27.2пряма
npmliquidjs^10.27.2пряма
npmminimatch10.2.5пряма
npmminimatch5.1.9пряма
npmminimatch^10.2.5пряма
npmminimatchcatalog:пряма
npmopenai6.48.0пряма
npmopenai^6.48.0пряма
npmsemver7.8.5пряма
npmsemvercatalog:пряма
npmsmol-toml1.7.0пряма
npmsmol-tomlcatalog:пряма
npmyaml2.9.0пряма
npmyamlcatalog:пряма
npmzod4.4.3пряма
npmzodcatalog:пряма
npm@babel/helper-string-parser7.27.1непряма
npm@babel/helper-validator-identifier7.28.5непряма
npm@babel/parser7.29.0непряма
npm@babel/runtime7.29.7непряма
npm@babel/types7.29.0непряма
npm@bcoe/v8-coverage1.0.2непряма
npm@biomejs/biome2.5.4непряма
npm@biomejs/biomecatalog:непряма
npm@biomejs/cli-darwin-arm642.5.4непряма
npm@biomejs/cli-darwin-x642.5.4непряма
npm@biomejs/cli-linux-arm642.5.4непряма
npm@biomejs/cli-linux-arm64-musl2.5.4непряма
npm@biomejs/cli-linux-x642.5.4непряма
npm@biomejs/cli-linux-x64-musl2.5.4непряма
npm@biomejs/cli-win32-arm642.5.4непряма
npm@biomejs/cli-win32-x642.5.4непряма
npm@conventional-changelog/git-client2.5.1непряма
npm@conventional-changelog/git-client2.6.0непряма
npm@esbuild/aix-ppc640.27.7непряма
npm@esbuild/aix-ppc640.28.1непряма
npm@esbuild/android-arm0.27.7непряма
npm@esbuild/android-arm0.28.1непряма
npm@esbuild/android-arm640.27.7непряма
npm@esbuild/android-arm640.28.1непряма
npm@esbuild/android-x640.27.7непряма
npm@esbuild/android-x640.28.1непряма
npm@esbuild/darwin-arm640.27.7непряма
npm@esbuild/darwin-arm640.28.1непряма
npm@esbuild/darwin-x640.27.7непряма
npm@esbuild/darwin-x640.28.1непряма
npm@esbuild/freebsd-arm640.27.7непряма
npm@esbuild/freebsd-arm640.28.1непряма
npm@esbuild/freebsd-x640.27.7непряма
npm@esbuild/freebsd-x640.28.1непряма
npm@esbuild/linux-arm0.27.7непряма
npm@esbuild/linux-arm0.28.1непряма
npm@esbuild/linux-arm640.27.7непряма
npm@esbuild/linux-arm640.28.1непряма
npm@esbuild/linux-ia320.27.7непряма
npm@esbuild/linux-ia320.28.1непряма
npm@esbuild/linux-loong640.27.7непряма
npm@esbuild/linux-loong640.28.1непряма
npm@esbuild/linux-mips64el0.27.7непряма
npm@esbuild/linux-mips64el0.28.1непряма
npm@esbuild/linux-ppc640.27.7непряма
npm@esbuild/linux-ppc640.28.1непряма
npm@esbuild/linux-riscv640.27.7непряма
npm@esbuild/linux-riscv640.28.1непряма
npm@esbuild/linux-s390x0.27.7непряма
npm@esbuild/linux-s390x0.28.1непряма
npm@esbuild/linux-x640.27.7непряма
npm@esbuild/linux-x640.28.1непряма
npm@esbuild/netbsd-arm640.27.7непряма
npm@esbuild/netbsd-arm640.28.1непряма
npm@esbuild/netbsd-x640.27.7непряма
npm@esbuild/netbsd-x640.28.1непряма
npm@esbuild/openbsd-arm640.27.7непряма
npm@esbuild/openbsd-arm640.28.1непряма
npm@esbuild/openbsd-x640.27.7непряма
npm@esbuild/openbsd-x640.28.1непряма
npm@esbuild/openharmony-arm640.27.7непряма
npm@esbuild/openharmony-arm640.28.1непряма
npm@esbuild/sunos-x640.27.7непряма
npm@esbuild/sunos-x640.28.1непряма
npm@esbuild/win32-arm640.27.7непряма
npm@esbuild/win32-arm640.28.1непряма
npm@esbuild/win32-ia320.27.7непряма
npm@esbuild/win32-ia320.28.1непряма
npm@esbuild/win32-x640.27.7непряма
npm@esbuild/win32-x640.28.1непряма
npm@eslint-community/eslint-utils4.9.1непряма
npm@eslint-community/regexpp4.12.2непряма
npm@eslint/config-array0.23.5непряма
npm@eslint/config-helpers0.6.0непряма
npm@eslint/core1.2.1непряма
npm@eslint/object-schema3.0.5непряма
npm@eslint/plugin-kit0.7.2непряма
npm@humanfs/core0.19.2непряма
npm@humanfs/node0.16.8непряма
npm@humanfs/types0.15.0непряма
npm@humanwhocodes/module-importer1.0.1непряма
npm@humanwhocodes/retry0.4.3непряма
npm@jridgewell/gen-mapping0.3.13непряма
npm@jridgewell/resolve-uri3.1.2непряма
npm@jridgewell/sourcemap-codec1.5.5непряма
npm@jridgewell/trace-mapping0.3.31непряма
npm@manypkg/find-root3.1.0непряма
npm@manypkg/tools2.1.0непряма
npm@octokit/auth-token6.0.0непряма
npm@octokit/core7.0.6непряма
npm@octokit/endpoint11.0.3непряма
npm@octokit/graphql9.0.3непряма
npm@octokit/openapi-types27.0.0непряма
npm@octokit/plugin-paginate-rest14.0.0непряма
npm@octokit/plugin-request-log6.0.0непряма
npm@octokit/plugin-rest-endpoint-methods17.0.0непряма
npm@octokit/request10.0.8непряма
npm@octokit/request-error7.1.0непряма
npm@octokit/types16.0.0непряма
npm@rollup/rollup-android-arm-eabi4.62.2непряма
npm@rollup/rollup-android-arm644.62.2непряма
npm@rollup/rollup-darwin-arm644.62.2непряма
npm@rollup/rollup-darwin-x644.62.2непряма
npm@rollup/rollup-freebsd-arm644.62.2непряма
npm@rollup/rollup-freebsd-x644.62.2непряма
npm@rollup/rollup-linux-arm-gnueabihf4.62.2непряма
npm@rollup/rollup-linux-arm-musleabihf4.62.2непряма
npm@rollup/rollup-linux-arm64-gnu4.62.2непряма
npm@rollup/rollup-linux-arm64-musl4.62.2непряма
npm@rollup/rollup-linux-loong64-gnu4.62.2непряма
npm@rollup/rollup-linux-loong64-musl4.62.2непряма
npm@rollup/rollup-linux-ppc64-gnu4.62.2непряма
npm@rollup/rollup-linux-ppc64-musl4.62.2непряма
npm@rollup/rollup-linux-riscv64-gnu4.62.2непряма
npm@rollup/rollup-linux-riscv64-musl4.62.2непряма
npm@rollup/rollup-linux-s390x-gnu4.62.2непряма
npm@rollup/rollup-linux-x64-gnu4.62.2непряма
npm@rollup/rollup-linux-x64-musl4.62.2непряма
npm@rollup/rollup-openbsd-x644.62.2непряма
npm@rollup/rollup-openharmony-arm644.62.2непряма
npm@rollup/rollup-win32-arm64-msvc4.62.2непряма
npm@rollup/rollup-win32-ia32-msvc4.62.2непряма
npm@rollup/rollup-win32-x64-gnu4.62.2непряма
npm@rollup/rollup-win32-x64-msvc4.62.2непряма
npm@simple-libs/child-process-utils1.0.1непряма
npm@simple-libs/child-process-utils1.0.2непряма
npm@simple-libs/stream-utils1.1.0непряма
npm@simple-libs/stream-utils1.2.0непряма
npm@stablelib/base641.0.1непряма
npm@standard-schema/spec1.1.0непряма
npm@turbo/darwin-642.10.5непряма
npm@turbo/darwin-arm642.10.5непряма
npm@turbo/linux-642.10.5непряма
npm@turbo/linux-arm642.10.5непряма
npm@turbo/windows-642.10.5непряма
npm@turbo/windows-arm642.10.5непряма
npm@types/chai5.2.3непряма
npm@types/deep-eql4.0.2непряма
npm@types/ejs3.1.5непряма
npm@types/ejs^3.1.5непряма
npm@types/esrecurse4.3.1непряма
npm@types/estree1.0.9непряма
npm@types/figlet1.7.0непряма
npm@types/figlet^1.5.5непряма
npm@types/json-schema7.0.15непряма
npm@types/node22.20.1непряма
npm@types/nodecatalog:непряма
npm@types/semver7.7.1непряма
npm@types/semvercatalog:непряма
npm@typescript-eslint/parser8.65.0непряма
npm@typescript-eslint/project-service8.63.0непряма
npm@typescript-eslint/project-service8.65.0непряма
npm@typescript-eslint/scope-manager8.63.0непряма
npm@typescript-eslint/scope-manager8.65.0непряма
npm@typescript-eslint/tsconfig-utils8.63.0непряма
npm@typescript-eslint/tsconfig-utils8.65.0непряма
npm@typescript-eslint/types8.63.0непряма
npm@typescript-eslint/types8.65.0непряма
npm@typescript-eslint/typescript-estree8.63.0непряма
npm@typescript-eslint/typescript-estree8.65.0непряма
npm@typescript-eslint/utils8.63.0непряма
npm@typescript-eslint/visitor-keys8.63.0непряма
npm@typescript-eslint/visitor-keys8.65.0непряма
npm@vitest/coverage-v84.1.10непряма
npm@vitest/coverage-v8catalog:непряма
npm@vitest/eslint-plugin1.6.23непряма
npm@vitest/expect4.1.10непряма
npm@vitest/mocker4.1.10непряма
npm@vitest/pretty-format4.1.10непряма
npm@vitest/runner4.1.10непряма
npm@vitest/snapshot4.1.10непряма
npm@vitest/spy4.1.10непряма
npm@vitest/utils4.1.10непряма
npmacorn8.17.0непряма
npmacorn-jsx5.3.2непряма
npmajv6.15.0непряма
npmansi-escapes7.3.0непряма
npmansi-regex6.2.2непряма
npmansi-styles6.2.3непряма
npmany-promise1.3.0непряма
npmargparse2.0.1непряма
npmarray-ify1.0.0непряма
npmassertion-error2.0.1непряма
npmast-v8-to-istanbul1.0.0непряма
npmasync3.2.6непряма
npmbalanced-match1.0.2непряма
npmbalanced-match4.0.4непряма
npmbefore-after-hook4.0.0непряма
npmbrace-expansion2.0.3непряма
npmbrace-expansion5.0.5непряма
npmbundle-require5.1.0непряма
npmcac6.7.14непряма
npmchai6.2.2непряма
npmchokidar4.0.3непряма
npmcli-cursor5.0.0непряма
npmcli-truncate5.2.0непряма
npmcolorette2.0.20непряма
npmcompare-func2.0.0непряма
npmconfbox0.1.8непряма
npmconsola3.4.2непряма
npmconventional-changelog-preset-loader5.0.0непряма
npmconventional-commits-parser6.2.1непряма
npmconvert-source-map2.0.0непряма
npmcross-spawn7.0.6непряма
npmdebug4.4.3непряма
npmdeep-is0.1.4непряма
npmdot-prop5.3.0непряма
npmemoji-regex10.6.0непряма
npmenvironment1.1.0непряма
npmes-module-lexer2.0.0непряма
npmesbuild0.27.7непряма
npmesbuild0.28.1непряма
npmescape-string-regexp4.0.0непряма
npmeslint10.7.0непряма
npmeslint-scope9.1.2непряма
npmeslint-visitor-keys3.4.3непряма
npmeslint-visitor-keys5.0.1непряма
npmespree11.2.0непряма
npmesquery1.7.0непряма
npmesrecurse4.3.0непряма
npmestraverse5.3.0непряма
npmestree-walker3.0.3непряма
npmesutils2.0.3непряма
npmeventemitter35.0.4непряма
npmexpect-type1.3.0непряма
npmfast-content-type-parse3.0.0непряма
npmfast-deep-equal3.1.3непряма
npmfast-json-stable-stringify2.1.0непряма
npmfast-levenshtein2.0.6непряма
npmfast-sha2561.3.0непряма
npmfdir6.5.0непряма
npmfile-entry-cache8.0.0непряма
npmfilelist1.0.6непряма
npmfind-up5.0.0непряма
npmfix-dts-default-cjs-exports1.0.1непряма
npmflat-cache4.0.1непряма
npmflatted3.4.2непряма
npmfsevents2.3.3непряма
npmget-east-asian-width1.5.0непряма
npmglob-parent6.0.2непряма
npmhas-flag4.0.0непряма
npmhtml-escaper2.0.2непряма
npmhusky9.1.7непряма
npmignore5.3.2непряма
npmignore-walk8.0.0непряма
npmimurmurhash0.1.4непряма
npmis-extglob2.1.1непряма
npmis-fullwidth-code-point5.1.0непряма
npmis-glob4.0.3непряма
npmis-obj2.0.0непряма
npmisexe2.0.0непряма
npmistanbul-lib-coverage3.2.2непряма
npmistanbul-lib-report3.0.1непряма
npmistanbul-reports3.2.0непряма
npmjake10.9.4непряма
npmjju1.4.0непряма
npmjoycon3.1.1непряма
npmjs-tokens10.0.0непряма
npmjs-yaml4.1.1непряма
npmjson-buffer3.0.1непряма
npmjson-schema-to-ts3.1.1непряма
npmjson-schema-traverse0.4.1непряма
npmjson-stable-stringify-without-jsonify1.0.1непряма
npmjson-with-bigint3.5.7непряма
npmkeyv4.5.4непряма
npmlevn0.4.1непряма
npmlilconfig3.1.3непряма
npmlines-and-columns1.2.4непряма
npmlint-staged16.4.0непряма
npmlistr29.0.5непряма
npmload-tsconfig0.2.5непряма
npmlocate-path6.0.0непряма
npmlog-update6.1.0непряма
npmmagic-string0.30.21непряма
npmmagicast0.5.2непряма
npmmake-dir4.0.0непряма
npmmeow13.2.0непряма
npmmimic-function5.0.1непряма
npmminimist1.2.8непряма
npmmlly1.8.0непряма
npmms2.1.3непряма
npmmz2.7.0непряма
npmnanoid3.3.16непряма
npmnatural-compare1.4.0непряма
npmneo-async2.6.2непряма
npmnpm-packlist10.0.4непряма
npmnpm-packlist^10.0.4непряма
npmobject-assign4.1.1непряма
npmobug2.1.3непряма
npmobug2.1.4непряма
npmonetime7.0.0непряма
npmoptionator0.9.4непряма
npmp-limit3.1.0непряма
npmp-locate5.0.0непряма
npmpath-exists4.0.0непряма
npmpath-key3.1.1непряма
npmpathe2.0.3непряма
npmpicocolors1.1.1непряма
npmpicomatch4.0.4непряма
npmpicomatch4.0.5непряма
npmpirates4.0.7непряма
npmpkg-types1.3.1непряма
npmpostcss8.5.20непряма
npmpostcss-load-config6.0.1непряма
npmprelude-ls1.2.1непряма
npmproc-log6.1.0непряма
npmpunycode2.3.1непряма
npmreaddirp4.1.2непряма
npmresolve-from5.0.0непряма
npmrestore-cursor5.1.0непряма
npmrfdc1.4.1непряма
npmrollup4.62.2непряма
npmshebang-command2.0.0непряма
npmshebang-regex3.0.0непряма
npmsiginfo2.0.0непряма
npmsignal-exit4.1.0непряма
npmslice-ansi7.1.2непряма
npmslice-ansi8.0.0непряма
npmsource-map0.6.1непряма
npmsource-map0.7.6непряма
npmsource-map-js1.2.1непряма
npmstackback0.0.2непряма
npmstandardwebhooks1.0.0непряма
npmstd-env4.1.0непряма
npmstd-env4.2.0непряма
npmstring-argv0.3.2непряма
npmstring-width7.2.0непряма
npmstring-width8.2.0непряма
npmstrip-ansi7.2.0непряма
npmsucrase3.35.1непряма
npmsupports-color7.2.0непряма
npmthenify3.3.1непряма
npmthenify-all1.6.0непряма
npmtinybench2.9.0непряма
npmtinyexec0.3.2непряма
npmtinyexec1.0.4непряма
npmtinyglobby0.2.16непряма
npmtinyglobby0.2.17непряма
npmtinyrainbow3.1.0непряма
npmtree-kill1.2.2непряма
npmts-algebra2.0.0непряма
npmts-api-utils2.5.0непряма
npmts-interface-checker0.1.13непряма
npmtsup8.5.1непряма
npmtsupcatalog:непряма
npmtsx4.23.1непряма
npmturbo2.10.5непряма
npmtype-check0.4.0непряма
npmtypescript5.9.3непряма
npmtypescriptcatalog:непряма
npmufo1.6.3непряма
npmuglify-js3.19.3непряма
npmundici-types6.21.0непряма
npmuniversal-user-agent7.0.3непряма
npmuri-js4.4.1непряма
npmvite7.3.1непряма
npmvitest4.1.10непряма
npmvitestcatalog:непряма
npmwhich2.0.2непряма
npmwhy-is-node-running2.3.0непряма
npmword-wrap1.2.5непряма
npmwordwrap1.0.0непряма
npmwrap-ansi9.0.2непряма
npmyocto-queue0.1.0непряма
Сповіщення про залежності 1

Встановлення npm:@releasekit/notes@0.41.2 тягне 49 пакетів, прямих і транзитивних: 1 мають відомі сповіщення, з них 0 — прямі залежності.

ПакетВерсіяЗв'язокКритичністьСповіщеньВиправлено в
brace-expansion2.1.2непрямависока15.0.8

Сповіщення означає, що версія, записана в графі залежностей, потрапляє в уражений діапазон. Досяжність не аналізується, а граф містить піниї розробки й тестування — знахідка може стосуватися інструментів, а не поставленого коду.

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 8614,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "EJS": 545,
        "Shell": 51732,
        "Liquid": 5031,
        "Handlebars": 357,
        "JavaScript": 67855,
        "TypeScript": 2962552
      },
      "pushed_at": "2026-07-27T05:17:49Z",
      "created_at": "2026-02-20T23:32:36Z",
      "owner_type": "User",
      "updated_at": "2026-07-21T01:58:45Z",
      "description": "Composable, CI-native release tooling: semantic versioning from Conventional Commits, changelogs/notes, and publishing to npm, crates.io & pub.dev — registry-agnostic, more ecosystems on the way.",
      "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": null,
      "type": "User",
      "login": "goosewobbler",
      "company": null,
      "location": "UK",
      "followers": 23,
      "avatar_url": "https://avatars.githubusercontent.com/u/432005?v=4",
      "created_at": "2010-10-08T06:55:56Z",
      "is_verified": null,
      "public_repos": 105,
      "account_age_days": 5771
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.41.2",
          "kind": "patch",
          "published_at": "2026-07-21T02:02:08Z"
        },
        {
          "tag": "v0.41.1",
          "kind": "patch",
          "published_at": "2026-07-20T09:08:30Z"
        },
        {
          "tag": "v0.41.0",
          "kind": "minor",
          "published_at": "2026-07-19T21:04:09Z"
        },
        {
          "tag": "v0.40.0",
          "kind": "minor",
          "published_at": "2026-07-18T16:35:27Z"
        },
        {
          "tag": "v0.39.0",
          "kind": "minor",
          "published_at": "2026-07-01T11:29:52Z"
        },
        {
          "tag": "v0.38.1",
          "kind": "patch",
          "published_at": "2026-07-01T10:04:24Z"
        },
        {
          "tag": "v0.38.0",
          "kind": "minor",
          "published_at": "2026-07-01T10:04:02Z"
        },
        {
          "tag": "v0.37.0",
          "kind": "minor",
          "published_at": "2026-06-30T09:24:08Z"
        },
        {
          "tag": "v0.36.0",
          "kind": "minor",
          "published_at": "2026-06-29T19:46:42Z"
        },
        {
          "tag": "v0.35.0",
          "kind": "minor",
          "published_at": "2026-06-29T14:58:13Z"
        },
        {
          "tag": "v0.34.0",
          "kind": "minor",
          "published_at": "2026-06-29T12:26:36Z"
        },
        {
          "tag": "v0.33.0",
          "kind": "minor",
          "published_at": "2026-06-25T07:12:03Z"
        },
        {
          "tag": "v0.32.1",
          "kind": "patch",
          "published_at": "2026-06-24T19:16:57Z"
        },
        {
          "tag": "v0.32.0",
          "kind": "minor",
          "published_at": "2026-06-24T19:16:35Z"
        },
        {
          "tag": "v0.31.1",
          "kind": "patch",
          "published_at": "2026-06-24T19:16:16Z"
        },
        {
          "tag": "v0.31.0",
          "kind": "minor",
          "published_at": "2026-06-24T19:15:48Z"
        },
        {
          "tag": "v0.30.2",
          "kind": "patch",
          "published_at": "2026-06-18T13:14:48Z"
        },
        {
          "tag": "v0.30.1",
          "kind": "patch",
          "published_at": "2026-06-18T13:14:29Z"
        },
        {
          "tag": "v0.30.0",
          "kind": "minor",
          "published_at": "2026-06-17T00:44:02Z"
        },
        {
          "tag": "v0.29.1",
          "kind": "patch",
          "published_at": "2026-06-16T16:43:36Z"
        },
        {
          "tag": "v0.29.0",
          "kind": "minor",
          "published_at": "2026-06-16T12:12:22Z"
        },
        {
          "tag": "v0.28.0",
          "kind": "minor",
          "published_at": "2026-06-16T10:34:59Z"
        },
        {
          "tag": "v0.27.0",
          "kind": "minor",
          "published_at": "2026-06-16T10:34:46Z"
        },
        {
          "tag": "v0.26.0",
          "kind": "minor",
          "published_at": "2026-06-09T00:48:40Z"
        },
        {
          "tag": "v0.25.0",
          "kind": "minor",
          "published_at": "2026-06-04T14:49:32Z"
        },
        {
          "tag": "v0.24.0",
          "kind": "minor",
          "published_at": "2026-06-04T11:54:31Z"
        },
        {
          "tag": "v0.23.0",
          "kind": "minor",
          "published_at": "2026-05-14T14:07:32Z"
        },
        {
          "tag": "v0.22.0",
          "kind": "minor",
          "published_at": "2026-05-11T17:25:55Z"
        },
        {
          "tag": "v0.21.0",
          "kind": "minor",
          "published_at": "2026-05-06T20:21:13Z"
        },
        {
          "tag": "v0.20.0",
          "kind": "minor",
          "published_at": "2026-05-04T17:13:00Z"
        },
        {
          "tag": "v0.19.3",
          "kind": "patch",
          "published_at": "2026-05-01T10:50:49Z"
        },
        {
          "tag": "v0.19.2",
          "kind": "patch",
          "published_at": "2026-05-01T10:05:50Z"
        },
        {
          "tag": "v0.19.1",
          "kind": "patch",
          "published_at": "2026-05-01T01:43:24Z"
        },
        {
          "tag": "v0.19.0",
          "kind": "minor",
          "published_at": "2026-04-30T18:21:29Z"
        },
        {
          "tag": "v0.18.0",
          "kind": "minor",
          "published_at": "2026-04-29T12:36:23Z"
        },
        {
          "tag": "v0.17.1",
          "kind": "patch",
          "published_at": "2026-04-22T18:04:19Z"
        },
        {
          "tag": "v0.17.0",
          "kind": "minor",
          "published_at": "2026-04-17T22:39:33Z"
        },
        {
          "tag": "v0.16.1",
          "kind": "patch",
          "published_at": "2026-04-17T13:23:22Z"
        },
        {
          "tag": "v0.16.0",
          "kind": "minor",
          "published_at": "2026-04-17T12:20:42Z"
        },
        {
          "tag": "v0.15.3",
          "kind": "patch",
          "published_at": "2026-04-17T03:22:14Z"
        },
        {
          "tag": "v0.15.2",
          "kind": "patch",
          "published_at": "2026-04-17T02:59:13Z"
        },
        {
          "tag": "v0.15.1",
          "kind": "patch",
          "published_at": "2026-04-17T01:56:55Z"
        },
        {
          "tag": "v0.15.0",
          "kind": "minor",
          "published_at": "2026-04-17T01:31:47Z"
        },
        {
          "tag": "v0.14.3",
          "kind": "patch",
          "published_at": "2026-04-17T00:03:07Z"
        },
        {
          "tag": "v0.14.2",
          "kind": "patch",
          "published_at": "2026-04-16T23:43:15Z"
        },
        {
          "tag": "v0.14.1",
          "kind": "patch",
          "published_at": "2026-04-16T23:33:52Z"
        },
        {
          "tag": "v0.14.0",
          "kind": "minor",
          "published_at": "2026-04-16T22:50:37Z"
        },
        {
          "tag": "v0.13.13",
          "kind": "patch",
          "published_at": "2026-04-16T21:56:21Z"
        },
        {
          "tag": "v0.13.12",
          "kind": "patch",
          "published_at": "2026-04-16T20:16:26Z"
        },
        {
          "tag": "v0.13.11",
          "kind": "patch",
          "published_at": "2026-04-16T19:23:46Z"
        },
        {
          "tag": "v0.13.10",
          "kind": "patch",
          "published_at": "2026-04-16T17:12:50Z"
        },
        {
          "tag": "v0.13.9",
          "kind": "patch",
          "published_at": "2026-04-16T16:01:03Z"
        },
        {
          "tag": "v0.13.8",
          "kind": "patch",
          "published_at": "2026-04-16T09:33:05Z"
        },
        {
          "tag": "v0.13.7",
          "kind": "patch",
          "published_at": "2026-04-16T01:19:19Z"
        },
        {
          "tag": "v0.13.6",
          "kind": "patch",
          "published_at": "2026-04-15T23:11:16Z"
        },
        {
          "tag": "v0.13.5",
          "kind": "patch",
          "published_at": "2026-04-15T22:18:13Z"
        },
        {
          "tag": "v0.13.4",
          "kind": "patch",
          "published_at": "2026-04-15T22:01:48Z"
        },
        {
          "tag": "v0.13.3",
          "kind": "patch",
          "published_at": "2026-04-15T18:46:01Z"
        },
        {
          "tag": "v0.13.2",
          "kind": "patch",
          "published_at": "2026-04-15T14:24:06Z"
        },
        {
          "tag": "v0.13.1",
          "kind": "patch",
          "published_at": "2026-04-15T12:48:22Z"
        },
        {
          "tag": "v0.13.0",
          "kind": "minor",
          "published_at": "2026-04-15T11:59:04Z"
        },
        {
          "tag": "v0.12.0",
          "kind": "minor",
          "published_at": "2026-04-09T01:19:02Z"
        },
        {
          "tag": "v0.11.1",
          "kind": "patch",
          "published_at": "2026-04-08T17:22:39Z"
        },
        {
          "tag": "v0.11.0",
          "kind": "minor",
          "published_at": "2026-04-08T00:10:29Z"
        },
        {
          "tag": "v0.10.4",
          "kind": "patch",
          "published_at": "2026-04-07T12:33:00Z"
        },
        {
          "tag": "v0.10.3",
          "kind": "patch",
          "published_at": "2026-04-05T11:09:56Z"
        },
        {
          "tag": "v0.10.2",
          "kind": "patch",
          "published_at": "2026-04-05T02:28:11Z"
        },
        {
          "tag": "v0.10.1",
          "kind": "patch",
          "published_at": "2026-04-05T01:39:05Z"
        },
        {
          "tag": "v0.10.0",
          "kind": "minor",
          "published_at": "2026-04-05T00:44:46Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2026-04-05T00:00:16Z"
        },
        {
          "tag": "v0.8.1",
          "kind": "patch",
          "published_at": "2026-04-04T10:19:08Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-04-04T09:07:38Z"
        },
        {
          "tag": "v0.7.48",
          "kind": "patch",
          "published_at": "2026-04-03T11:30:54Z"
        },
        {
          "tag": "v0.7.47",
          "kind": "patch",
          "published_at": "2026-04-03T11:03:20Z"
        },
        {
          "tag": "v0.7.46",
          "kind": "patch",
          "published_at": "2026-04-03T10:47:29Z"
        },
        {
          "tag": "v0.7.45",
          "kind": "patch",
          "published_at": "2026-04-03T10:25:11Z"
        },
        {
          "tag": "v0.7.44",
          "kind": "patch",
          "published_at": "2026-04-03T08:33:30Z"
        },
        {
          "tag": "v0.7.43",
          "kind": "patch",
          "published_at": "2026-04-02T22:55:56Z"
        },
        {
          "tag": "v0.7.42",
          "kind": "patch",
          "published_at": "2026-04-02T22:45:18Z"
        },
        {
          "tag": "v0.7.41",
          "kind": "patch",
          "published_at": "2026-04-02T22:40:34Z"
        },
        {
          "tag": "v0.7.40",
          "kind": "patch",
          "published_at": "2026-04-02T21:53:35Z"
        },
        {
          "tag": "v0.7.39",
          "kind": "patch",
          "published_at": "2026-04-02T21:47:44Z"
        },
        {
          "tag": "v0.7.38",
          "kind": "patch",
          "published_at": "2026-04-02T21:37:53Z"
        },
        {
          "tag": "v0.7.37",
          "kind": "patch",
          "published_at": "2026-04-02T21:31:52Z"
        },
        {
          "tag": "v0.7.36",
          "kind": "patch",
          "published_at": "2026-04-02T21:22:03Z"
        },
        {
          "tag": "v0.7.35",
          "kind": "patch",
          "published_at": "2026-04-02T21:16:17Z"
        },
        {
          "tag": "v0.7.34",
          "kind": "patch",
          "published_at": "2026-04-02T21:11:28Z"
        },
        {
          "tag": "v0.7.33",
          "kind": "patch",
          "published_at": "2026-04-02T21:05:39Z"
        },
        {
          "tag": "v0.7.32",
          "kind": "patch",
          "published_at": "2026-04-02T20:49:30Z"
        },
        {
          "tag": "v0.7.31",
          "kind": "patch",
          "published_at": "2026-04-02T20:40:19Z"
        },
        {
          "tag": "v0.7.30",
          "kind": "patch",
          "published_at": "2026-04-02T20:27:28Z"
        },
        {
          "tag": "v0.7.29",
          "kind": "patch",
          "published_at": "2026-04-02T20:18:57Z"
        },
        {
          "tag": "v0.7.28",
          "kind": "patch",
          "published_at": "2026-04-02T20:10:04Z"
        },
        {
          "tag": "v0.7.27",
          "kind": "patch",
          "published_at": "2026-04-02T19:29:27Z"
        },
        {
          "tag": "v0.7.26",
          "kind": "patch",
          "published_at": "2026-04-02T19:16:35Z"
        },
        {
          "tag": "v0.7.25",
          "kind": "patch",
          "published_at": "2026-04-02T18:40:41Z"
        },
        {
          "tag": "v0.7.24",
          "kind": "patch",
          "published_at": "2026-04-02T18:33:42Z"
        },
        {
          "tag": "v0.7.23",
          "kind": "patch",
          "published_at": "2026-04-02T18:28:33Z"
        },
        {
          "tag": "v0.7.22",
          "kind": "patch",
          "published_at": "2026-04-02T18:23:28Z"
        },
        {
          "tag": "v0.7.21",
          "kind": "patch",
          "published_at": "2026-04-02T18:01:15Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "60a6ff5714c006e61ad5edeeac58e3a4d9e9261a",
          "body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release v0.41.2 (#595)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-21T01:58:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c7f64ac21a872492d38ea02cf8ab050fa0ace2b",
          "body": "…tdout (#605)\n\nTier 2 of #594. The JSON-result CLI commands (release, gate, standing-pr\nupdate/publish) gain a `--output <path>` flag that writes the result JSON to a\nfile via a shared emitResult() helper. run-action passes a temp --output file for\nthose modes and reads the structured result from it\n[…]\nclaude.ai/code/session_01K6CmYRXTZQYs4MNo6AETxT\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(action): read release outputs from a --output file, not scraped s…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-21T01:57:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f2d670ecce9af2b9c1864cdf437c5b8617069cc6",
          "body": "… in the development-dependencies group (#607)\n\nBumps the development-dependencies group with 1 update: [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser).\n\n\nUpdates `@typescript-eslint/parser` from 8.64.0 to 8.65.0\n- [Release notes](https:/\n[…]\ne:semver-minor\n  dependency-group: development-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps-dev): bump @typescript-eslint/parser from 8.64.0 to 8.65.0…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-21T01:55:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2568bd966be66efc4c97700a1d10903bab8c5165",
          "body": "…79 (#604)\n\nBumps [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) from 1.0.178 to 1.0.179.\n- [Release notes](https://github.com/anthropics/claude-code-action/releases)\n- [Commits](https://github.com/anthropics/claude-code-action/compare/af0559ee4f514d1ef21826982bed1\n[…]\nirect:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump anthropics/claude-code-action from 1.0.178 to 1.0.1…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-21T01:54:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6eda3c6679d768a14d2a1aeea8f55857c6c2d185",
          "body": "…606)\n\nBumps the production-dependencies group with 2 updates: [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) and [figlet](https://github.com/patorjk/figlet.js).\n\n\nUpdates `@anthropic-ai/sdk` from 0.112.3 to 0.112.4\n- [Release notes](https://github.com/anthropics/anthrop\n[…]\nte:semver-patch\n  dependency-group: production-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the production-dependencies group with 2 updates (#…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-21T01:52:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6c9b64141e266a0b7a1d3ba89c8242be9049c116",
          "body": "…into tooling (#598)\n\n* docs(agents): slim AGENTS.md to non-derivable context; move test-title rule to eslint\n\nRework AGENTS.md around \"keep only what an agent can't derive by exploring\"\n(auto-generated / comprehensive context files hurt agent performance):\n- Cut tech-stack, monorepo tree, verificat\n[…]\node/session_01K6CmYRXTZQYs4MNo6AETxT\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(agents): slim AGENTS.md to non-derivable context; move guidance …",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-21T01:43:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "41e2349d174bc17a840c0e46973410138ae18712",
          "body": "…e step (#602)\n\n* fix(action): expose refresh-after-release mode; fix template reconcile step\n\nTwo gaps made the canonical post-release reconcile hard to adopt correctly:\n\n1. The GitHub Action couldn't invoke refresh-after-release — it wasn't in the\n   mode allowlist, so action users could only reac\n[…]\node/session_01K6CmYRXTZQYs4MNo6AETxT\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(action): expose refresh-after-release mode; fix template reconcil…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-21T01:42:41Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2e072b72bdd103a92f16da5dd863ef7ade0c3495",
          "body": "…ml (#603)\n\nexamples-smoke.yml is generated from templates/workflows/ (which dependabot does\nnot scan) yet lives in .github/workflows/ (which it does) — so a major action\nbump (setup-node v6 -> v7) lands only on the generated file and fails\nexamples:smoke:check. Dependabot has no per-file ignore, so\n[…]\nclaude.ai/code/session_01K6CmYRXTZQYs4MNo6AETxT\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(ci): stop dependabot re-drifting the generated examples-smoke.y…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-21T01:41:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6e5197b0b704b69822273a6805bdb15356a70e86",
          "body": "…an't be parsed (#597)\n\n* fix(action): recover the release `tags` output from git when stdout can't be parsed\n\nThe action's release-mode outputs (tags/has-changes/version-output) are derived\nby parsing the CLI's stdout in run-action.mjs. A rare stdout-capture hiccup — the\nsame failure mode that stra\n[…]\node/session_01K6CmYRXTZQYs4MNo6AETxT\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(action): recover the release `tags` output from git when stdout c…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-21T00:51:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "980662633d06b51adaef8dd0882398eba77c4018",
          "body": "…(#596)\n\n* fix(ci): retry action-dist network ops and auto-heal failed releases\n\nTwo complementary layers on top of the git-derived action tag (#593),\ncovering the two remaining failure classes:\n\n- Retry the network/API operations in _action-release (git push, gh release\n  create) up to 3x. A transi\n[…]\node/session_01K6CmYRXTZQYs4MNo6AETxT\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(ci): retry action-dist network ops and auto-heal failed releases …",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-21T00:47:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "98ac69ca5947f36fdcc66b8fe716a6abcef2e116",
          "body": "…(#593)\n\n* fix(ci): derive action tag from git to stop silent action-dist skips\n\nThe action-dist build (which commits packages/release/dist and force-moves\nthe consumable vX.Y.Z tag) was gated on action_tag, scraped from the publish\ncommand's stdout JSON. Any stdout hiccup emptied that capture, so t\n[…]\node/session_01K6CmYRXTZQYs4MNo6AETxT\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(ci): derive action tag from git to stop silent action-dist skips …",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-20T20:33:21Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "929db181862274ee8f15548ad30a06c0d2c4dd26",
          "body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release v0.41.1 (#582)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-20T08:14:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff2bb72bbce9023bdc9f2c9cba9683c56c521259",
          "body": "…ing (#587)\n\nThe standing-PR publish path trusted the release manifest comment verbatim: a\nwrite-access actor could edit the comment's base64 to forge `versionOutput` and\ndrive arbitrary git tags and registry publishes under the project's identity\n(the draft flow already recomputed; standing-pr did \n[…]\nclaude.ai/code/session_01BT6fVBZrmExXZj7vQ29881\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(standing-pr): validate the manifest against source before publish…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-20T08:02:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8590aafc17f46ed14ea8d43b5523890e765560c9",
          "body": "…es (#592)\n\nBumps the development-dependencies group with 2 updates: [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) and [turbo](https://github.com/vercel/turborepo).\n\n\nUpdates `@typescript-eslint/parser` from 8.63.0 to 8.64.0\n- [Release \n[…]\ne:semver-patch\n  dependency-group: development-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps-dev): bump the development-dependencies group with 2 updat…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-20T07:51:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5b816bd1faa6fcef4d51713bfea489a4674a8551",
          "body": "…78 (#591)\n\nBumps [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) from 1.0.171 to 1.0.178.\n- [Release notes](https://github.com/anthropics/claude-code-action/releases)\n- [Commits](https://github.com/anthropics/claude-code-action/compare/e90deca47693f9457b72f2b53c17d\n[…]\nirect:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump anthropics/claude-code-action from 1.0.171 to 1.0.1…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-20T07:50:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ba06b1895a899079947533806494315d2926bb7a",
          "body": "Independently soft-fail each LLM task so a late summarize/releaseNotes\nfailure no longer discards already-computed enhancement; find the\nAnthropic text block instead of reading content[0] for thinking-model\nforward-compat; classify retryable vs non-retryable errors so 4xx\nauth/validation fails fast \n[…]\nclaude.ai/code/session_01BT6fVBZrmExXZj7vQ29881\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(notes): harden LLM notes reliability (#585)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-20T07:49:53Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7116c9438d317a7bf4f0b1c1e6a50773367be445",
          "body": "Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.\n- [Release notes](https://github.com/actions/setup-node/releases)\n- [Commits](https://github.com/actions/setup-node/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-node\n  dependency-version: '\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump actions/setup-node from 6 to 7 (#590)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-20T07:48:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4ce2a60a53c4d4c5798a92ee8d8b346a030861d5",
          "body": "Prevent a malicious or mistaken config from driving reads/writes outside\nthe repository.\n\n- version.cargo.paths / version.pub.paths manifest writes are confined to\n  the workspace root, in both the async PackageProcessor path and the\n  sync/single updateCargoFiles path; an entry escaping the root vi\n[…]\nclaude.ai/code/session_01BT6fVBZrmExXZj7vQ29881\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(config): confine config-driven filesystem and env access (#586)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T23:33:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "186241c99a1a6fc15646a9e1193219eba8ccd301",
          "body": "Every existing layer bypasses the real publish path: Examples Smoke runs\n--dry-run (auth is dry-run-exempt), the Action harness sets SKIP_PUBLISH,\nand unit specs mock the registries. That gap let #578 (cargo auth demanded\non a crateless repo) ship despite a green suite.\n\nAdd a vitest integration spe\n[…]\nclaude.ai/code/session_01BT6fVBZrmExXZj7vQ29881\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test(publish): add non-dry-run publish e2e coverage (#588)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T23:25:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "533889b3433484e9bbe3f79b7073dd07eed8c6e8",
          "body": "…rivilege (#583)\n\nPin mutable third-party actions to full commit SHAs (amannn/action-\nsemantic-pull-request, dtolnay/rust-toolchain, dorny/paths-filter,\npnpm/action-setup) so a repointed tag can't run with CI privileges;\nDependabot's github-actions ecosystem can bump them. Remove the inlined\nSSH pri\n[…]\nclaude.ai/code/session_01BT6fVBZrmExXZj7vQ29881\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci: harden workflows — SHA-pin actions, drop inlined SSH key, least-p…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T23:01:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "192b36faaf577d041278d8bf0276bafc3c06f07b",
          "body": "…npmrc\n\nAdd a leading-dash guard (assertNotOption in @releasekit/core, mirroring\ngit's barrier) on tags passed to gh release view/create/edit, so a tag\nstarting with '-' can never be parsed as a flag (gh exposes -R/--repo,\n-F/--notes-file). The publish pipeline creates the tag via git first\n(already\n[…]\nclaude.ai/code/session_01BT6fVBZrmExXZj7vQ29881\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(publish): harden gh calls against arg injection; lock down temp .…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T21:45:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3cea584908e38a1577c5551ac29829c0c69b4e0c",
          "body": "… (#574)\n\nRemove ~80 trailing #NNN tags that merely cited the issue/PR a piece of\ncode closed or a test covers, where the comment or title already stands on\nits own (e.g. `// ...preview. #569`, `it('should ... (#486)')`). Git\nhistory remains the canonical code<->issue trace, and a bare number isn't\n\n[…]\nne.\n\nFollow-up in #573: convert the kept refs to explicit hyperlink comments\nand codify the convention in AGENTS.md.\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore: drop bare origin-issue citations from comments and test titles…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T21:20:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "eaa2dd450b3036992f12baecaf88a3565258da15",
          "body": "Two coupled failures let a release-logic regression (private-npm-package\nskip) break the smoke unnoticed for weeks:\n\n1. The npm-single fixture's root package.json was `private: true`, so once\n   private packages became skipped-at-discovery it was the only package and\n   got filtered out — \"No packag\n[…]\nion: https://claude.ai/code/session_011i1KvoyxATU3bz5V5Sf1Xu\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(ci): restore Examples Smoke as a working regression detector (#577)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T21:06:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b47ca09f6a48c2987cfbfc1f4a0d89929b3d9f92",
          "body": "…ops (#579)\n\nThe dispatcher ran each registry's authCheck before discovering targets, so\nan enabled stage with nothing to publish still demanded credentials — and a\ncrateless repo (cargo enabled by default since the ecosystem-enablement\nchange) failed the whole release with \"CARGO_REGISTRY_TOKEN not\n[…]\nion: https://claude.ai/code/session_011i1KvoyxATU3bz5V5Sf1Xu\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(publish): discover before authenticating so an empty registry no-…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T20:55:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "73547eff72a0ed97afe2f36bf36076c61d1d2b52",
          "body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release v0.41.0 (#555)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-19T20:11:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ffc66d8bc4e1ff4d5b3465ec85e82c301ee4385",
          "body": "…-poisoning (#572)\n\nrenderExamplesBlock interpolated example fields (version, category, scope,\nleadIn, description) into the prompt's <example> block unescaped. Examples\nare built from past release bodies and release-notes output becomes a\nfuture example — a self-poisoning loop where an entry could \n[…]\nion: https://claude.ai/code/session_011i1KvoyxATU3bz5V5Sf1Xu\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(notes): escape few-shot example interpolation to stop prompt self…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T19:23:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5be1b67007e9651db3e3f6d79854c5bb497c6c6f",
          "body": "…them (#570)\n\n* fix(version): include test commits in changelogs instead of dropping them\n\ntest was the only conventional-commit type mapped to null in\nmapCommitTypeToChangelogType — every other non-feat/fix type (docs, style,\nrefactor, perf, build, ci, chore) already surfaces as \"Changed\". Dropping\n[…]\n//claude.ai/code/session_011i1KvoyxATU3bz5V5Sf1Xu\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(version): include test commits in changelogs instead of dropping …",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T19:09:29Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c2af4ec7afcf092793abff7a5ad02ff24b8be8c0",
          "body": "* docs(adr): scope ADR-0005 to LLM-enhanced release notes\n\nThe original title and filename (\"require an explicit LLM model\") read as\na repo-wide policy, when the decision only governs the one place ReleaseKit\ncalls a model — LLM-enhanced release notes. Versioning, changelog\ngeneration, and publishin\n[…]\n//claude.ai/code/session_011i1KvoyxATU3bz5V5Sf1Xu\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(adr): scope ADR-0005 to LLM-enhanced release notes (#568)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T18:37:52Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f4b7d1558897881e7a6c5e52d02c13b0765d821d",
          "body": "The multi-registry harness only ran with npm version handling enabled, so\nthe \"detection enables, config opts out\" path (version.npm.enabled: false)\n— where several sync-strategy bugs previously skipped or abandoned the\nCargo.toml write — had no e2e coverage.\n\nParameterize the multi fixture with npm\n[…]\nion: https://claude.ai/code/session_011i1KvoyxATU3bz5V5Sf1Xu\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test(harness): cover the npm-disabled cargo-only version path (#567)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T18:36:42Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ea580eaf3e325ccb936429eef6dc7a2ad2c45c12",
          "body": "…t injection (#565)\n\nThe only path from attacker-writable input (commit subjects, PR bodies) to\nbot-owned surfaces. Two related fixes:\n\nMarker-collision injection: notes prose (LLM output, human edits, and the non-LLM\nchangelog fallback) was wrapped verbatim in `<!-- releasekit-notes:<pkg> -->`\nregi\n[…]\nta, never instructions), and escAttr now also escapes '>'.\n\nRefs #540\n\n\nClaude-Session: https://claude.ai/code/session_011i1KvoyxATU3bz5V5Sf1Xu\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(notes): neutralize marker sequences and harden LLM prompts agains…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T17:49:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5373744801fdd8e9928b606be4e127e0810f261f",
          "body": "…564)\n\n* feat(config)!: unify per-ecosystem enablement — detection enables, config opts out\n\nEvery detected ecosystem is versioned and, where publishing is configured and\nauthenticated, published by default; explicit config is only ever an opt-out.\n\n- publish.cargo.enabled / publish.pub.enabled now \n[…]\n541\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_011i1KvoyxATU3bz5V5Sf1Xu\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(notes): require an explicit llm.model; enum-validate provider (#…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T17:49:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "44ba43bee4dda179788f481caa441541d5b7dd93",
          "body": "…nfig opts out (#563)\n\nEvery detected ecosystem is versioned and, where publishing is configured and\nauthenticated, published by default; explicit config is only ever an opt-out.\n\n- publish.cargo.enabled / publish.pub.enabled now default true (was false)\n- add version.npm.enabled (default true) so p\n[…]\nled / publish.pub.enabled to false to opt out\n(version and tag only).\n\n\nClaude-Session: https://claude.ai/code/session_011i1KvoyxATU3bz5V5Sf1Xu\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(config)!: unify per-ecosystem enablement — detection enables, co…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T17:47:36Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4a51135634e84681a44d13a23f443fc620305fef",
          "body": "…r (#562)\n\nAn authenticated push/fetch remote (https://x-access-token:<token>@github.com/…)\nrode the failed argv — and git's own stderr — into GitError, which surfaces in CI\nlogs and the failure-report PR comment on any push failure. Mask the user:password\nuserinfo at the GitError construction choke\n[…]\ner is untouched, so the real push still uses\nthe real URL.\n\nRefs #557\n\n\nClaude-Session: https://claude.ai/code/session_011i1KvoyxATU3bz5V5Sf1Xu\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(git): redact URL credentials in GitError message, argv, and stder…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T17:28:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "43ba6c0f78b2f77c49f0555f2c53561d202ef140",
          "body": "…ns (#566)\n\nADR-0004 captures the \"detection enables, config opts out\" ecosystem-enablement\nmodel (#554); ADR-0005 captures shipping no LLM model defaults and requiring an\nexplicit llm.model (#541). Both are decisions someone will otherwise re-litigate —\n\"why does cargo publish by default?\" and \"let\n[…]\ndel defaults for convenience\"\n— so the durable why belongs in an ADR.\n\n\nClaude-Session: https://claude.ai/code/session_011i1KvoyxATU3bz5V5Sf1Xu\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(adr): record ecosystem-enablement and required-LLM-model decisio…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T17:27:26Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8e4d26cac48578e06db58a2afe6e246030c458b0",
          "body": "* docs: add ROADMAP.md distilled from the July 2026 direction review\n\nRecords settled decisions (stay TypeScript, no MCP server, change files\nas an option, ecosystem depth-over-breadth policy with triggers), the\nNow/Next/Later sequence linking issues #540-#552, the ecosystem queue,\nand watch items. \n[…]\n://claude.ai/code/session_01BT6fVBZrmExXZj7vQ29881\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add themed ROADMAP.md and establish docs/adr (#553)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-19T14:05:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "465be8482a342a13de80bc450b410a91a5209bfb",
          "body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release v0.40.0 (#527)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-18T16:32:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "905acd160255aa7220ae00324b2a7e8187f2450d",
          "body": "…tcher (#519) (#538)\n\n* fix(release): register gate, refresh-after-release, backfill in dispatcher\n\nThe public `releasekit` bin points at createDispatcherProgram(), which\nregistered `preview` as the default command but omitted `gate`,\n`refresh-after-release`, and `backfill` — all present on the\n`rel\n[…]\node/session_011i1KvoyxATU3bz5V5Sf1Xu\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(release): register gate, refresh-after-release, backfill in dispa…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-18T14:11:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "83d450caad22ae3c0186d8846652defc67a3b590",
          "body": "claude-code-review.yml was switched from auto-review-every-PR to opt-in\n(a /review comment or a claude-review label) on 2026-05-04 and has had\nzero runs since — the claude-review label was never applied to any PR.\nGreptile already auto-reviews every PR, so this is a dead, redundant\nduplicate with a \n[…]\nclaude.ai/code/session_011i1KvoyxATU3bz5V5Sf1Xu\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(ci): remove the redundant Claude code-review workflow (#537)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-18T13:24:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0db23aa4303787c6e7ea18acb5adb62655e22a9e",
          "body": "formatDuration only emitted hours+minutes, so a long-lived standing PR\nrendered \"open 624h 36m\" — unreadable. Add a day component so it reads\n\"open 26d 36m\", deriving hours from the sub-day remainder while\npreserving the existing zero-omission behavior (e.g. 3h, not 3h 0m).\nparseDuration already und\n[…]\nclaude.ai/code/session_011i1KvoyxATU3bz5V5Sf1Xu\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(release): show days in standing-PR \"open …\" age (#536)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-18T13:09:50Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "065b529384fa27e4ad104e6869f4cb5db7de492d",
          "body": "…unauthorized actors (#526) (#534)\n\n* fix(standing-pr): reconcile channel toggles against the manifest for unauthorized actors (#526)\n\nThe per-package channel toggles (rk-pre / rk-grad, #521) were read straight\nfrom the live PR body and fed to the version write step with no authorization\ncheck — unl\n[…]\node/session_011i1KvoyxATU3bz5V5Sf1Xu\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(standing-pr): reconcile channel toggles against the manifest for …",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-18T12:55:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3b4348ace157e993ad037b4eda6b7a6914ce8ccf",
          "body": "…71 (#531)\n\n* chore(deps): bump anthropics/claude-code-action from 1.0.159 to 1.0.171\n\nBumps [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) from 1.0.159 to 1.0.171.\n- [Release notes](https://github.com/anthropics/claude-code-action/releases)\n- [Commits](https://git\n[…]\n699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": true,
          "headline": "chore(deps): bump anthropics/claude-code-action from 1.0.159 to 1.0.1…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-18T12:54:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3eae087bafdef4dcf32ced97e79dea126089aefa",
          "body": "…y with 9 updates (#533)\n\nBumps the production-dependencies group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.106.0` | `0.112.3` |\n| [liquidjs](https://github.com/harttle/liquidjs) \n[…]\nte:semver-patch\n  dependency-group: production-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the production-dependencies group across 1 director…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-18T12:28:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c7dc41d8b23b12ae5e31a219d3804a336ac8a3ae",
          "body": "…ectory with 4 updates (#532)\n\nBumps the development-dependencies group with 4 updates in the / directory: [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser), [@vitest/eslint-plugin](https://github.com/vitest-dev/eslint-plugin-vitest), [esli\n[…]\ne:semver-patch\n  dependency-group: development-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps-dev): bump the development-dependencies group across 1 dir…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-18T12:16:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f754fdee85dd9a83582ad9ad29e8a093063dc13f",
          "body": "…le (#520) (#524)\n\nAdd two additive, non-interactive surfaces to the top of the standing-PR body\n(#520), plus the contract prerequisite that feeds them:\n\n- Contract: a new optional `previousVersion` on `VersionPackageUpdate` — the\n  resolved baseline the update bumped from, in the same consumer-tag \n[…]\nclaude.ai/code/session_01YKc58ugkMor2LZ8XwMh4Qb\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(release): standing-PR release summary line + version-summary tab…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-04T18:11:54Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "66850747e2b68c433add70038f4020f75a0e7f01",
          "body": "…) (#525)\n\nAdd a per-row channel toggle to the standing-PR selection list so a maintainer can\nship a SUBSET of packages on a prerelease channel — or graduate a subset to stable —\nwithout narrowing the release: the rest keep their projected versions.\n\nEngine (the symmetric twin of graduate/graduateSc\n[…]\nclaude.ai/code/session_01YKc58ugkMor2LZ8XwMh4Qb\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(release): per-package channel selection in the standing PR (#521…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-04T18:02:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3c77e9c7bbb8f6d380dbb3684f85e6e30daaeac0",
          "body": "Add `changelog.demoteScopes` (default `['deps']`): changelog entries whose\nscope matches route into a trailing, bare-heading \"Dependencies & version\nbumps\" subsection instead of interleaving with Added / Fixed / Changed. Applied\nto both standing-PR surfaces — the per-row changelogs and the \"Show all\n[…]\nclaude.ai/code/session_01YKc58ugkMor2LZ8XwMh4Qb\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(notes): demote dependency & version-bump churn in changelogs (#523)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-04T16:22:31Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "61df49db75f4cf495cef32255ad5685fd8f9723e",
          "body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release v0.39.0 (#518)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-01T11:27:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4ced2d445bc17499c7c059857aa58b7854924259",
          "body": "…es (#517)\n\n* feat(standing-pr): in-progress banner + collapse rapid checkbox toggles\n\nInteracting with the standing PR was slow and silent — a checkbox toggle re-runs\nthe full update (2-4 min) with no feedback. Two responsiveness wins, both in the\nconsumer template (no CLI change needed: standing-p\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(standing-pr): in-progress banner + collapse rapid checkbox toggl…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-01T11:24:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "15dde04a7064449361059a2d7076502891394fcf",
          "body": "…I (#516)\n\n* docs(ci-setup): guide exempting the standing PR from consumer build CI\n\nEvery standing-pr update pushes to release/next, which is a pull_request\nsynchronize on the open standing PR — so a consumer's build/test matrix re-runs\non every update (verified: 65 jobs on one desktop-mobile stand\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(ci-setup): guide exempting the standing PR from consumer build C…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-01T11:03:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ee6dd7b8ff7cad73a45f7fcd93377d95cabc2a8b",
          "body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release v0.38.1 (#512)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-01T10:01:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1af5d1654f22bdba00db08802c4ceb2771d578c",
          "body": "…\" (#513)\n\n* fix(release): label independent-group members \"bundled\", not \"coupled\"\n\nIn streamlined mode a primary's group-mates render as `· coupled` bullets under a\n`ships N coupled` summary. That's accurate for fixed/linked groups (members share a\nversion) but misleading for independent groups: m\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(release): label independent-group members \"bundled\", not \"coupled…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-01T09:57:37Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c3b8183af0f09164e78e6b3b55a18823cb6c2810",
          "body": "…lockquote spacing) (#511)\n\n#506 wrapped the standing-PR / combined-footer changelog in a blockquote. Inside a\nblockquote GitHub collapses bold-text section labels (`**Added**`) to near-zero\nvertical spacing, so consecutive Added/Fixed/Changed sections read as one cramped\nblock. Switch the section l\n[…]\n (and was never reported cramped).\n\nCloses #508\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(release): use #### headings for standing-PR changelog sections (b…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-01T09:40:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "56737e8965aa472f0b6e99cfd31c71a96548ee6b",
          "body": "…iption (#510)\n\n* fix(notes): neutralise bare #N refs left in the changelog entry description\n\nThe refs handling (#499/#506) only neutralised the *appended* label; a bare `#N`\ncarried over from the squash commit subject into the entry description was left\nuntouched, so GitHub auto-linked it into a v\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(notes): neutralise bare #N refs left in the changelog entry descr…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-07-01T09:40:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d15effa389992a87d6cea8a0983c89683c168488",
          "body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release v0.38.0 (#501)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-30T16:12:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "73513f8ca216dd0e400e5bf4f6548dc44804ac1a",
          "body": "…PR-comment changelogs (#506)\n\n* feat(notes): label PR vs closed issues in changelog refs; blockquote PR-comment changelogs\n\nRender link-mode refs as `(PR #503 · closes #500)`. The PR link's visible text is\n`PR #503` on the canonical /pull/ URL, which keeps the hovercard but drops\nGitHub's inline ri\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(notes): label PR vs closed issues in changelog refs; blockquote …",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-30T15:58:44Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0fb05282dbc316bb55cbe154c2454f5dfd8c643e",
          "body": "…too (#505)\n\nThe feeder-PR / release-preview comment (preview/format.ts) was the third\nchangelog surface still emitting bare `#NNN` refs (GitHub hovercard clutter)\nand un-escaped `@scope/pkg` descriptions (stray org/team mentions that can ping\non every preview post) — the same problem #499 fixed for\n[…]\n renderEntries → formatEntryGroup.\n\nCloses #504\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(release): neutralise changelog auto-links in the preview comment …",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-30T13:46:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "afc062dd5414e019e3acb7d6b7c02f8af596e780",
          "body": "…elogs (#503)\n\n* feat(notes): neutralise GitHub auto-linked refs and mentions in changelogs\n\nBare `#NNN` issue/PR refs and `@scope/pkg` / `@user` tokens in changelog\noutput get auto-linked by GitHub — hovercard clutter for refs, and stray\nmention links that can ping/subscribe a real org or team on e\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(notes): neutralise GitHub auto-linked refs and mentions in chang…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-30T12:43:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "96d8589bf0effecf08f5071b00212f2ef44bdb1b",
          "body": "…the base (#502)\n\n* fix(version): increment the prerelease counter instead of escalating the base\n\nA package on a prerelease whose base is still unreleased advanced by escalating\nthe base + resetting the counter — a feat on 1.0.0-next.3 produced 1.1.0-next.0\n(and three packages at next.3/next.1/next\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(version): increment the prerelease counter instead of escalating …",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-30T11:35:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5d8ddc51348f782e63c72d848d2f257704cf5fd4",
          "body": "…verage (#498)\n\n* fix(version): harden Cargo.lock resolution + real-cargo sync coverage\n\nFollow-up to #496/#497, addressing review gaps and adding the coverage that\nmocked unit tests can't give.\n\n- findCargoLockfile now targets the workspace-ROOT lock (the one\n  `cargo update --workspace` actually r\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(version): harden Cargo.lock resolution and add real-cargo sync co…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-30T10:46:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0632523230fecafc816446898556363e828dfb30",
          "body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release v0.37.0 (#490)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-30T09:19:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bded363daff1a8c6ebde8db8c82f795b922576f1",
          "body": "* fix(version): sync Cargo.lock self-version when bumping a crate\n\nBumping a crate rewrote Cargo.toml's `version` but never touched the committed\nCargo.lock, so the lock's own [[package]] entry stayed at the old version. That\ndrift breaks `cargo build --locked`/`--frozen` (the mode consumers use bec\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(version): sync Cargo.lock self-version when bumping a crate (#497)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-30T08:39:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "282215ae37c191deaaf4e12dd0bda1dc546fcba2",
          "body": "…495)\n\n* feat(release): per-package graduation via graduate:<package> label\n\nGraduate a single prerelease package to stable from the standing PR while\nothers stay on their line. graduate:<package> sets a scoped stableOnly in the\nversion engine; applyOverrideScope gates it per package, and the group \n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(release): per-package graduation via graduate:<package> label (#…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T23:51:52Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a697f26da94ce752664e07f0538573bdc6f9905d",
          "body": "* feat(release): group standing-PR selection checklist by channel\n\nWith per-package channels (#485) a standing PR can mix stable and\nprerelease packages, but the selection checklist was a flat list so the\nchannel wasn't visible at a glance.\n\nGroup the checklist into a Stable section (advancing on `l\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(release): group standing-PR selection checklist by channel (#494)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T23:51:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d798bd1a94336fb3950bce89aa73a94b4fe20907",
          "body": "…heir own line by default (#493)\n\n* feat(version): per-package release channel; stop global auto-graduate\n\nDerive each package's channel from its current version and make the\nstanding-PR default advance along that line instead of graduating any\n-next package to stable. A prerelease increments its co\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(version): per-package release channel — advance prereleases on t…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T22:44:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ae83c7f99b3394fa8ee0144bb43da23bff7b9c8f",
          "body": "…-PR row (#492)\n\n* feat(release): per-releasable changelog co-located with each standing-PR row\n\nReplace the single combined changelog blob with a collapsed per-row changelog\nshowing exactly what ships for each releasable (primary + coupled members +\nchanged prerequisites), plus one flat, de-duplica\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(release): per-releasable changelog co-located with each standing…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T22:44:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a2f395596d8ebbfa6114920ed0c2a0b24c0ca464",
          "body": "…lper (#491)\n\nThe `private` field was read three inconsistent ways — two truthy checks\n(config filtering, npm precheckSkip) and one strict `!== true` (version\nengine). The split meant a quoted `\"private\": \"true\"` passed the strict\npath as NOT private and could be published (irreversible), while a\n`\"\n[…]\n of\nbeing swallowed and published.\n\nCloses #484\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(core): route all package.json private reads through one strict he…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T22:44:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7cd578571725cf20318ce8cf6f8402830c150d64",
          "body": "…ion (#489)\n\nVerified the two documented branch rulesets against a live GitHub repo via the\nrulesets API. UI wording, the ~DEFAULT_BRANCH target, and an active lock +\nbypass-actor force-push all check out. Three things were wrong or missing:\n\n- evaluate (dry-run) enforcement is Enterprise-only — the\n[…]\n.\n  Added a plan-requirement note.\n\nCloses #416\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(ci-setup): correct standing-PR ruleset docs after live verificat…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T21:27:29Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ff6e3d4950fc4b312edaec14274c3e5015d3403d",
          "body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release v0.36.0 (#472)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-29T19:40:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6eb0b8da28dd08206e9c9bda2f4c7523229f36e1",
          "body": "…#480)\n\n* fix(version): dedupe hybrid package updates by directory (npm wins)\n\nA hybrid package (one directory carrying both a package.json and a native\nmanifest like Cargo.toml/pubspec.yaml) is a single package — npm owns its\nidentity, which discovery already enforces by deduping per directory\n(mer\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(version): dedupe hybrid package updates by directory (npm wins) (…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T19:33:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fe77cb1d57228131d70eab95463699fcbc4ad659",
          "body": "…ault (#482)\n\n* feat(version): skip private npm packages from the release flow by default\n\nPrivate npm packages (package.json \"private\": true) can't be published to\nany registry, yet they entered the version pipeline and had to be excluded\nby hand — one consumer maintained a 19-entry all-private ver\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(version): skip private npm packages from the release flow by def…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T19:29:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1ca9f30eeb00915372ce0c8e546e7761ecd1b563",
          "body": "The warning was a single dense blockquote line — hard to scan as one wall of\ntext. Split it (wording unchanged) into three blockquote paragraphs so the\nbreaking-changes / not-for-production caveat stands on its own.\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: break the pre-1.0.0 warning into readable paragraphs (#483)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T19:18:27Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2804cacba33525ca337b4d9c99c14733e508aeb8",
          "body": "`previousVersion` is stored as the consumer tag (e.g. `pkg@v10.1.0`) so\ncompare-URL generation can build links from it, but the standing-PR and\npreview renderers printed it raw — asymmetric with the bare new version\n(`pkg@v10.1.0 → 10.2.0`).\n\nAdd `toDisplayVersion(tagOrVersion)` to version-display.t\n[…]\nrsion` skip checks are\nunaffected.\n\nCloses #475\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(release): display bare previous version in changelog headers (#479)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T19:15:50Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f914a02e0ce839bbfb128766361b1223bc70080d",
          "body": "…#481)\n\nThe (minor)/(patch)/(major) suffix on the standing-PR \"Packages to release\"\nrows appeared inconsistently: bumpSuffix() returned '' whenever a package's\npreviousVersion was null, so the suffix showed only on packages with a known\nprior stable version and was absent on first-release / prerelea\n[…]\nhangelog header in\nstanding-pr.ts is untouched.\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(release): drop bump-kind suffix from standing-PR selection rows (…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T19:15:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f5beb594922a90b3cf797c17f7fe83838e44c089",
          "body": "…ation (#478)\n\nWhen a prerelease graduates to stable with no prior stable tag, the\nbaseline resolver re-bases the changelog range onto the last stable tag\nso the graduated notes span the whole prerelease line. That lookup\nreturns '' when no stable predecessor exists, which also dropped the\npreviousV\n[…]\nrelease (no\ntag at all) still resolves to null.\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(version): show prerelease predecessor as previousVersion on gradu…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T19:15:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "610b3a73b3baf15e156d12192e1c20a19adc4baa",
          "body": "…59 (#465)\n\nBumps [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) from 1.0.153 to 1.0.159.\n- [Release notes](https://github.com/anthropics/claude-code-action/releases)\n- [Commits](https://github.com/anthropics/claude-code-action/compare/2fee15510437d71399d9139ed6043\n[…]\nirect:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump anthropics/claude-code-action from 1.0.153 to 1.0.1…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-29T14:54:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6990c90d54b7edcb6ddadfa7cf1ef68a50926264",
          "body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release v0.35.0 (#470)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-29T14:52:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b353201a6a3611cfcb2b988d2155cb720a1583eb",
          "body": "…es (#471)\n\n* feat(release): hierarchical standing-PR selection with primary packages\n\nRender the standing-PR \"Packages to release\" list as release units instead of a\nflat per-package checklist. Declare `ci.standingPr.primaryPackages` (the drivers)\nand each primary becomes a parent row with its coup\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(release): hierarchical standing-PR selection with primary packag…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T14:21:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7a929fca0af1c4f2b9a9bbb91cb26686eb036c40",
          "body": "…y with 4 updates (#466)\n\n* chore(deps): bump the production-dependencies group across 1 directory with 4 updates\n\nBumps the production-dependencies group with 4 updates in the / directory: [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript), [liquidjs](https://github.com/har\n[…]\n699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the production-dependencies group across 1 director…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-29T13:03:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4d00095d7f6562139c5022f70958942f9f51d4de",
          "body": "…eview (#469)\n\n* fix(release): collapse synthetic version-bump entries in feeder-PR preview\n\nIn standing-PR mode the feeder-PR preview rendered a full changelog block\n(`Changed → Update version to X.X.X`) for every package a sync/lockstep bump\ncarries along, instead of collapsing those no-real-chang\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(release): collapse synthetic version-bump entries in feeder-PR pr…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T12:30:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9c9878c90b13cfc558c9a5e0f7ca59de09bc342a",
          "body": "…319) (#463)\n\n* feat(release): manual-mode draft-then-dispatch on a tracking issue (#319)\n\nManual mode (workflow_dispatch) has no standing PR, so there's no body to\nreview release notes in before they ship. Add a two-phase flow:\n\n- `releasekit release --draft` computes the release in a dry-run pass \n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(release): manual-mode draft-then-dispatch on a tracking issue (#…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T12:01:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "982035ff694b657a46ca2faa2dd8e3e04523236e",
          "body": "…es (#467)\n\nBumps the development-dependencies group with 3 updates: [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser), [eslint](https://github.com/eslint/eslint) and [turbo](https://github.com/vercel/turborepo).\n\n\nUpdates `@typescript-esli\n[…]\ne:semver-minor\n  dependency-group: development-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps-dev): bump the development-dependencies group with 3 updat…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-29T11:43:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ab7a44e120a64fdbf70e3050e2af67194ade38b0",
          "body": "…ease (#461)\n\nExtract the feeder-PR preview half of refresh-after-release into a standalone,\nnever-throwing refreshFeederPreviews(), and call it from the release orchestrator\nafter a successful non-dry release on BOTH paths — the direct/scoped path\n(release.ts) and the standing-PR publish path (stan\n[…]\nng to drive from the orchestrator.\n\nCloses #459\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(release): drive feeder-PR preview refresh in-process after a rel…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T11:39:54Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1c10bd40fe69070ad7d328a1ffb187cf6a580d54",
          "body": "* feat(forge): add issue create/update/find to the Forge seam\n\nAdds createIssue, updateIssue (body/title edit + close via state), and\nfindOpenIssueByLabel to the Forge interface, the Octokit-backed GitHubForge,\nand the in-memory FakeForge. No behavior change — these are unused until the\nmanual-mode \n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(forge): add issue create/update/find to the Forge seam (#462)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T11:39:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "32e3ca6fba994178dcfe9cfada523c8be73a4fa7",
          "body": "… groups (#460)\n\n* fix(version): keep explicit prereleases on their line in linked/fixed groups\n\nWhen a linked/fixed group member's manifest lags its published prerelease tag\n(an interrupted release: tagged + published, but the version commit never landed\non the base branch), the member's ownNext is\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(version): keep explicit prereleases on their line in linked/fixed…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T11:38:36Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2f26918853331040dda6fd49430b325571af3c11",
          "body": "* fix(publish): don't push the branch in standing-PR publish\n\nIn standing-PR mode the release commit is already on the remote (the\nsquash merge lands it before publish runs), yet the pipeline marked\n`git.committed` true and pushed the branch anyway. That push is a no-op\nat best and races a concurren\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(publish): don't push the branch in standing-PR publish (#457)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-29T11:38:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "777e884a6dc5b543d395980253af35b74bdb5e4c",
          "body": null,
          "is_bot": false,
          "headline": "docs: Update README.md",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-26T19:50:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8aaaa8faef590ab3802f1987831212902ca41cb0",
          "body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release v0.34.0 (#443)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-26T19:48:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ae6ab0b44dd7c7c6c25d02606d7bf740f2309c4",
          "body": "Consistency follow-up to the version-key migration: the dead-field removal stripped\nci.autoRelease, the top-level ci.skipPatterns/ci.minChanges, and monorepo.mainPackage,\nbut a config still carrying them silently stripped at runtime while the JSON schema\nrejects them. Add a migration check that thro\n[…]\n / release.ci.minChanges, version.mainPackage).\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(config): migration errors for removed ci/monorepo keys (#452)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-26T19:47:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "52bc463907ce9b363beeaed50c742fa38dfc6b47",
          "body": "`monorepo.mode` (the config-file field) never drove behaviour: changelog aggregation\nis controlled by notes.changelog.mode, and the notes pipeline reads only\nmonorepo.rootPath/packagesPath. The `--monorepo` CLI flag also wrote it, but its real\neffect is setting changelog.mode — that wiring is kept; \n[…]\nregation is controlled by notes.changelog.mode.\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(config)!: remove dead monorepo.mode (#453)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-26T19:38:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0cd069a2725e4c3403fa01f77ce39385d5e35442",
          "body": "* feat(notes): wire up the LLM request timeout\n\nnotes.releaseNotes.llm.options.timeout was plumbed through but never consumed —\ngetTimeout() had no callers and no provider applied a request deadline (unlike the\nwired maxTokens/temperature). A slow/hung LLM call would block the notes stage\nindefinite\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(notes): wire up the LLM request timeout (#455)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-26T19:37:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3a484763707a20d47a9674e07945cf5d23d11471",
          "body": "`baseBranch` (sourced from git.branch) was threaded through toVersionConfig and every\nstrategy into calculateVersion, but nothing ever read it — branch logic used a live\ngetCurrentBranch() call, which the branch-pattern matcher removed earlier was the only\nconsumer. Remove the field, the toVersionCo\n[…]\nread by publish and standing-pr).\n\nCloses #448.\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(version): remove dead baseBranch plumbing (#451)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-26T18:54:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a0e0e35d1a4c300891825294d9a9d58e9e37cbf9",
          "body": "A `publish.git` block (even one not mentioning `push`) silently overrode an explicit\ntop-level `git.push: false`, because `mergeGitConfig` took `packageLevel.push`\nunconditionally and `PublishGitConfigSchema.push` defaulted to `true`. So a user who\nset `git.push: false` to prevent remote pushes got \n[…]\nia loadPublishConfig's `?? true`.\n\nCloses #447.\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(config): inherit top-level git.push when publish.git omits it (#450)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-26T18:53:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "bdc2e4c22b59e9ecad2477d2fb53e8c65da7f5ce",
          "body": "…#454)\n\n* fix(notes): make scopes.mode 'packages' use workspace package names\n\n`scopes.mode: 'packages'` is documented to derive the scope allow-list from workspace\npackage names, but `validateEntryScopes` called `resolveAllowedScopes` without the\n`packageNames` argument — so the 'packages' branch r\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(notes): make scopes.mode 'packages' use workspace package names (…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-26T18:53:04Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "26ae1a107b340e420152f647be60b786e71091c0",
          "body": "…uate (#442)\n\n* feat(release)!: rename graduation label channel:stable → release:graduate\n\n`channel:stable` was the odd one out in the label taxonomy: in label/direct mode\nit triggered a release on its own (graduating a prerelease to its base version),\nyet its `channel:` name made it look like a pee\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(release)!: rename graduation label channel:stable → release:grad…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-26T16:43:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fc219a9ff94488762e5a4b7a1316d92f68e355d6",
          "body": "…InternalDependencies (#449)\n\n* refactor(version)!: remove unwired branch-pattern versioning + updateInternalDependencies\n\nTwo dead config features removed (clean break, pre-1.0):\n\n**Branch-pattern versioning** (`version.versionStrategy` + `branchPatterns` +\n`defaultReleaseType`) was fully unreachab\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(version)!: remove unwired branch-pattern versioning + update…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-26T15:29:26Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8df95171a851c7f474b4c3a259901cc3f1b1a9dc",
          "body": "* refactor(config)!: remove dead config fields with no consumer\n\nAn audit of the config schema found several fields that are defined (and surfaced\nin the generated docs) but never read by any code:\n\n- `ci.autoRelease` — zero references anywhere outside the schema.\n- `ci.skipPatterns` / `ci.minChange\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(config)!: remove dead config fields with no consumer (#444)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-26T15:29:07Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f40e304a8f735f63d2d60fb720b00c3212059a52",
          "body": "…release) (#438)\n\n* feat(release): add refresh-after-release to refresh stale PR state post-release\n\nWhen a release moves `main`, two things go stale and nothing fixes them:\nopen-PR previews stay frozen at the pre-release baseline (GitHub doesn't\nre-fire pull_request events), and a standing PR bypas\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(release): refresh stale PR state after a release (refresh-after-…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-25T16:09:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "df76fb078822e7b046d8b449507dcd02244f7bbc",
          "body": "… (#440)\n\n* fix(version): preserve the prerelease in linked/fixed group baselines\n\ncleanBaseline ran semver.coerce() first, which strips the prerelease from a\nversion (1.0.0-next.0 -> 1.0.0). For a linked or fixed group whose latest is a\nprerelease, that made the group graduate off its prerelease li\n[…]\n(1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(version): preserve the prerelease in linked/fixed group baselines…",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-25T16:07:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4f9d0b68dc8ce5514c8d7584ec20dec21ad9a9dd",
          "body": "ReleaseKit is pre-1.0.0 and evolving fast; breaking changes are common and not\nalways gated behind a major bump. Add a prominent warning to the root README and\neach published package README so anyone discovering the project knows it's not\nproduction-ready until v1.0.0 and should pin exact versions.\n\nCo-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add pre-1.0.0 instability notice to READMEs (#441)",
          "author_name": "goosewobbler",
          "author_login": "goosewobbler",
          "committed_at": "2026-06-25T16:00:52Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b0333f35a57b28190811c744eaa2813e73231b76",
          "body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release v0.33.0 (#430)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-25T01:14:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 836,
      "latest_release_at": "2026-07-21T02:02:08Z",
      "latest_release_tag": "v0.41.2",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 20,
      "days_since_latest_release": 6,
      "mean_days_between_releases": 2.4
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 100,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@releasekit/notes",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "changelog",
            "release-notes",
            "llm",
            "template",
            "cli"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@releasekit/notes",
          "is_deprecated": false,
          "latest_version": "0.41.2",
          "repository_url": "https://github.com/goosewobbler/releasekit",
          "versions_count": 139,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 7889,
          "first_published_at": "2026-03-04T19:42:36.397000Z",
          "latest_published_at": "2026-07-21T02:00:00.347000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        },
        {
          "name": "@releasekit/publish",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "publish",
            "npm",
            "cargo",
            "release",
            "ci"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@releasekit/publish",
          "is_deprecated": false,
          "latest_version": "0.41.2",
          "repository_url": "https://github.com/goosewobbler/releasekit",
          "versions_count": 139,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 7995,
          "first_published_at": "2026-03-04T19:43:05.560000Z",
          "latest_published_at": "2026-07-21T02:00:06.210000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        },
        {
          "name": "@releasekit/release",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "version",
            "semver",
            "git",
            "package"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@releasekit/release",
          "is_deprecated": false,
          "latest_version": "0.41.2",
          "repository_url": "https://github.com/goosewobbler/releasekit",
          "versions_count": 150,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 7758,
          "first_published_at": "2026-03-04T19:42:51.328000Z",
          "latest_published_at": "2026-07-21T02:00:12.079000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        },
        {
          "name": "@releasekit/version",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "version",
            "semver",
            "git",
            "package"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@releasekit/version",
          "is_deprecated": false,
          "latest_version": "0.41.2",
          "repository_url": "https://github.com/goosewobbler/releasekit",
          "versions_count": 139,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 7853,
          "first_published_at": "2026-03-04T19:42:15.416000Z",
          "latest_published_at": "2026-07-21T01:59:55.063000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 1,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": null,
      "open_issues_and_prs": 17
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "packages/config/tsconfig.json",
        "packages/core/tsconfig.json",
        "packages/forge/tsconfig.json",
        "packages/git/tsconfig.json",
        "packages/notes/tsconfig.json",
        "packages/publish/tsconfig.json",
        "packages/release/tsconfig.json",
        "packages/version/tsconfig.json",
        "test/integration/tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 154639,
      "source_files_sampled": 398,
      "oversized_source_files": 4,
      "agent_instruction_files": [
        "AGENTS.md",
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 1703
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.1.2",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-mh99-v99m-4gvg"
            ],
            "fixed_version": "5.0.8",
            "advisory_count": 1,
            "oldest_advisory_days": 2
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 1
        },
        "advisory_count": 1,
        "affected_count": 1,
        "assessed_count": 49,
        "malicious_count": 0,
        "assessed_package": "npm:@releasekit/notes@0.41.2",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@releasekit/core",
          "manifest": "packages/config/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "jsonc-parser",
          "manifest": "packages/config/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "minimatch",
          "manifest": "packages/config/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "smol-toml",
          "manifest": "packages/config/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "yaml",
          "manifest": "packages/config/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "zod",
          "manifest": "packages/config/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@manypkg/get-packages",
          "manifest": "packages/core/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "chalk",
          "manifest": "packages/core/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "minimatch",
          "manifest": "packages/core/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@octokit/rest",
          "manifest": "packages/forge/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@anthropic-ai/sdk",
          "manifest": "packages/notes/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.112.4"
        },
        {
          "name": "@octokit/rest",
          "manifest": "packages/notes/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "chalk",
          "manifest": "packages/notes/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "commander",
          "manifest": "packages/notes/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "ejs",
          "manifest": "packages/notes/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.0.1"
        },
        {
          "name": "handlebars",
          "manifest": "packages/notes/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.7.9"
        },
        {
          "name": "jsonc-parser",
          "manifest": "packages/notes/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "liquidjs",
          "manifest": "packages/notes/package.json",
          "ecosystem": "npm",
          "version_constraint": "^10.27.2"
        },
        {
          "name": "minimatch",
          "manifest": "packages/notes/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "openai",
          "manifest": "packages/notes/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.48.0"
        },
        {
          "name": "smol-toml",
          "manifest": "packages/notes/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "yaml",
          "manifest": "packages/notes/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "zod",
          "manifest": "packages/notes/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "chalk",
          "manifest": "packages/publish/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "commander",
          "manifest": "packages/publish/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "jsonc-parser",
          "manifest": "packages/publish/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "minimatch",
          "manifest": "packages/publish/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "semver",
          "manifest": "packages/publish/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "smol-toml",
          "manifest": "packages/publish/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "yaml",
          "manifest": "packages/publish/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "zod",
          "manifest": "packages/publish/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@manypkg/get-packages",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@octokit/rest",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@releasekit/notes",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@releasekit/publish",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@releasekit/version",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "chalk",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "commander",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "conventional-changelog-angular",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.3.1"
        },
        {
          "name": "conventional-changelog-conventionalcommits",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "^9.3.1"
        },
        {
          "name": "jsonc-parser",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "minimatch",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "semver",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "smol-toml",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "yaml",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "zod",
          "manifest": "packages/release/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@manypkg/get-packages",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.1.0"
        },
        {
          "name": "@types/minimatch",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.1.2"
        },
        {
          "name": "chalk",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "commander",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "conventional-changelog-angular",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.3.1"
        },
        {
          "name": "conventional-changelog-conventional-commits",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "npm:conventional-changelog-conventionalcommits@^9.0.0"
        },
        {
          "name": "conventional-changelog-conventionalcommits",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "^9.3.1"
        },
        {
          "name": "conventional-commits-filter",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.0.0"
        },
        {
          "name": "conventional-recommended-bump",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.2.0"
        },
        {
          "name": "figlet",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.11.3"
        },
        {
          "name": "git-semver-tags",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.0.1"
        },
        {
          "name": "jsonc-parser",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "minimatch",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "^10.2.5"
        },
        {
          "name": "semver",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "smol-toml",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "yaml",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "zod",
          "manifest": "packages/version/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@anthropic-ai/sdk",
            "direct": true,
            "version": "0.112.4",
            "ecosystem": "npm"
          },
          {
            "name": "@anthropic-ai/sdk",
            "direct": true,
            "version": "^0.112.4",
            "ecosystem": "npm"
          },
          {
            "name": "@manypkg/get-packages",
            "direct": true,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@manypkg/get-packages",
            "direct": true,
            "version": "^3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@manypkg/get-packages",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@octokit/rest",
            "direct": true,
            "version": "22.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@octokit/rest",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@types/minimatch",
            "direct": true,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/minimatch",
            "direct": true,
            "version": "^5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": true,
            "version": "5.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": true,
            "version": "10.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": true,
            "version": "14.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": true,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-angular",
            "direct": true,
            "version": "8.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-angular",
            "direct": true,
            "version": "^8.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-conventionalcommits",
            "direct": true,
            "version": "9.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-conventionalcommits",
            "direct": true,
            "version": "9.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-conventionalcommits",
            "direct": true,
            "version": "^9.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-conventionalcommits",
            "direct": true,
            "version": "^9.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-commits-filter",
            "direct": true,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-commits-filter",
            "direct": true,
            "version": "^5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-recommended-bump",
            "direct": true,
            "version": "11.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-recommended-bump",
            "direct": true,
            "version": "^11.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "ejs",
            "direct": true,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ejs",
            "direct": true,
            "version": "^4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "figlet",
            "direct": true,
            "version": "1.11.3",
            "ecosystem": "npm"
          },
          {
            "name": "figlet",
            "direct": true,
            "version": "^1.11.3",
            "ecosystem": "npm"
          },
          {
            "name": "git-semver-tags",
            "direct": true,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "git-semver-tags",
            "direct": true,
            "version": "^8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "handlebars",
            "direct": true,
            "version": "4.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "handlebars",
            "direct": true,
            "version": "^4.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "jsonc-parser",
            "direct": true,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsonc-parser",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "liquidjs",
            "direct": true,
            "version": "10.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "liquidjs",
            "direct": true,
            "version": "^10.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": true,
            "version": "10.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": true,
            "version": "5.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": true,
            "version": "^10.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "openai",
            "direct": true,
            "version": "6.48.0",
            "ecosystem": "npm"
          },
          {
            "name": "openai",
            "direct": true,
            "version": "^6.48.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": true,
            "version": "7.8.5",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "smol-toml",
            "direct": true,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "smol-toml",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": true,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": true,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.28.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/runtime",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@bcoe/v8-coverage",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/biome",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/biome",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-darwin-arm64",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-darwin-x64",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-arm64",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-arm64-musl",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-x64",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-x64-musl",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-win32-arm64",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-win32-x64",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@conventional-changelog/git-client",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@conventional-changelog/git-client",
            "direct": false,
            "version": "2.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.28.1",
            "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.23.5",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-helpers",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/core",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/object-schema",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/plugin-kit",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/core",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/node",
            "direct": false,
            "version": "0.16.8",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/types",
            "direct": false,
            "version": "0.15.0",
            "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": "@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": "@manypkg/find-root",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@manypkg/tools",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@octokit/auth-token",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@octokit/core",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@octokit/endpoint",
            "direct": false,
            "version": "11.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@octokit/graphql",
            "direct": false,
            "version": "9.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@octokit/openapi-types",
            "direct": false,
            "version": "27.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@octokit/plugin-paginate-rest",
            "direct": false,
            "version": "14.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@octokit/plugin-request-log",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@octokit/plugin-rest-endpoint-methods",
            "direct": false,
            "version": "17.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@octokit/request",
            "direct": false,
            "version": "10.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@octokit/request-error",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@octokit/types",
            "direct": false,
            "version": "16.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@simple-libs/child-process-utils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@simple-libs/child-process-utils",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@simple-libs/stream-utils",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@simple-libs/stream-utils",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@stablelib/base64",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@turbo/darwin-64",
            "direct": false,
            "version": "2.10.5",
            "ecosystem": "npm"
          },
          {
            "name": "@turbo/darwin-arm64",
            "direct": false,
            "version": "2.10.5",
            "ecosystem": "npm"
          },
          {
            "name": "@turbo/linux-64",
            "direct": false,
            "version": "2.10.5",
            "ecosystem": "npm"
          },
          {
            "name": "@turbo/linux-arm64",
            "direct": false,
            "version": "2.10.5",
            "ecosystem": "npm"
          },
          {
            "name": "@turbo/windows-64",
            "direct": false,
            "version": "2.10.5",
            "ecosystem": "npm"
          },
          {
            "name": "@turbo/windows-arm64",
            "direct": false,
            "version": "2.10.5",
            "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/ejs",
            "direct": false,
            "version": "3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/ejs",
            "direct": false,
            "version": "^3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/esrecurse",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/figlet",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/figlet",
            "direct": false,
            "version": "^1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json-schema",
            "direct": false,
            "version": "7.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "22.20.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@types/semver",
            "direct": false,
            "version": "7.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/semver",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/parser",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/project-service",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/project-service",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/tsconfig-utils",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/tsconfig-utils",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/utils",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/coverage-v8",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/coverage-v8",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/eslint-plugin",
            "direct": false,
            "version": "1.6.23",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.17.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-escapes",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "any-promise",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "array-ify",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ast-v8-to-istanbul",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "async",
            "direct": false,
            "version": "3.2.6",
            "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": "before-after-hook",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "bundle-require",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cac",
            "direct": false,
            "version": "6.7.14",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "cli-cursor",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-truncate",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "colorette",
            "direct": false,
            "version": "2.0.20",
            "ecosystem": "npm"
          },
          {
            "name": "compare-func",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "confbox",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "consola",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-preset-loader",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-commits-parser",
            "direct": false,
            "version": "6.2.1",
            "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": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "deep-is",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "dot-prop",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "10.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "environment",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "10.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "9.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "espree",
            "direct": false,
            "version": "11.2.0",
            "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": "eventemitter3",
            "direct": false,
            "version": "5.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-content-type-parse",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.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": "fast-sha256",
            "direct": false,
            "version": "1.3.0",
            "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": "filelist",
            "direct": false,
            "version": "1.0.6",
            "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": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "get-east-asian-width",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "6.0.2",
            "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": "husky",
            "direct": false,
            "version": "9.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ignore-walk",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-obj",
            "direct": false,
            "version": "2.0.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": "jake",
            "direct": false,
            "version": "10.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "jju",
            "direct": false,
            "version": "1.4.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": "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": "json-with-bigint",
            "direct": false,
            "version": "3.5.7",
            "ecosystem": "npm"
          },
          {
            "name": "keyv",
            "direct": false,
            "version": "4.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "levn",
            "direct": false,
            "version": "0.4.1",
            "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": "lint-staged",
            "direct": false,
            "version": "16.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "listr2",
            "direct": false,
            "version": "9.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "load-tsconfig",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "log-update",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "magicast",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "make-dir",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "meow",
            "direct": false,
            "version": "13.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-function",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "mlly",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mz",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.16",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "neo-async",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "npm-packlist",
            "direct": false,
            "version": "10.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "npm-packlist",
            "direct": false,
            "version": "^10.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "object-assign",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "optionator",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "5.0.0",
            "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": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "pirates",
            "direct": false,
            "version": "4.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-types",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.20",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-load-config",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "prelude-ls",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "proc-log",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "restore-cursor",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "rfdc",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.62.2",
            "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": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "slice-ansi",
            "direct": false,
            "version": "7.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "slice-ansi",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.6.1",
            "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": "stackback",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "standardwebhooks",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-argv",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "8.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "sucrase",
            "direct": false,
            "version": "3.35.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "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.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.16",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tinyrainbow",
            "direct": false,
            "version": "3.1.0",
            "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.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "ts-interface-checker",
            "direct": false,
            "version": "0.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "tsup",
            "direct": false,
            "version": "8.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "tsup",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "tsx",
            "direct": false,
            "version": "4.23.1",
            "ecosystem": "npm"
          },
          {
            "name": "turbo",
            "direct": false,
            "version": "2.10.5",
            "ecosystem": "npm"
          },
          {
            "name": "type-check",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "ufo",
            "direct": false,
            "version": "1.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "uglify-js",
            "direct": false,
            "version": "3.19.3",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "universal-user-agent",
            "direct": false,
            "version": "7.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "uri-js",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "7.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "catalog:",
            "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": "wordwrap",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "9.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 415,
        "direct_count": 51,
        "indirect_count": 364
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 5,
        "merged_prs": 397,
        "open_issues": 12,
        "closed_ratio": 0.927,
        "closed_issues": 152,
        "closed_unmerged_prs": 46
      },
      "bus_factor": 1,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "goosewobbler",
          "commits": 599,
          "avatar_url": "https://avatars.githubusercontent.com/u/432005?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "_action-release.reusable.yml",
        "_ci-build.reusable.yml",
        "_ci-detect-changes.reusable.yml",
        "_ci-e2e.reusable.yml",
        "_ci-integration.reusable.yml",
        "_ci-package-tests.reusable.yml",
        "_ci-unit.reusable.yml",
        "_release.reusable.yml",
        "_standing-pr-update.reusable.yml",
        "action-dist-heal.yml",
        "action.yml",
        "action.yml",
        "action.yml",
        "ci.yml",
        "claude.yml",
        "codeql.yml",
        "examples-smoke.yml",
        "examples-validate.yml",
        "pages.yml",
        "pr-title.yml",
        "release-preview.yml",
        "release-retry.yml",
        "release.yml",
        "standing-pr.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        "eslint.config.js"
      ],
      "has_editorconfig": true,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "pnpm-lock.yaml"
      ],
      "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": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 9,
            "reason": "28 out of 30 merged PRs checked by a CI test -- score normalized to 9",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/21 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 2,
            "reason": "dependency not pinned by hash detected -- score normalized to 2",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 9,
            "reason": "SAST tool detected but not 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": 0,
            "reason": "11 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "60a6ff5714c006e61ad5edeeac58e3a4d9e9261a",
        "ran_at": "2026-07-27T20:47:45Z",
        "aggregate_score": 5.2,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-27T10:11:57Z",
      "oldest_open_prs": [
        {
          "number": 608,
          "created_at": "2026-07-21T02:29:14Z",
          "last_comment_at": "2026-07-21T08:19:08Z",
          "last_comment_author": "goosewobbler"
        },
        {
          "number": 609,
          "created_at": "2026-07-21T02:45:30Z",
          "last_comment_at": "2026-07-21T02:46:22Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 610,
          "created_at": "2026-07-27T05:15:33Z",
          "last_comment_at": "2026-07-27T05:16:10Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 611,
          "created_at": "2026-07-27T05:17:03Z",
          "last_comment_at": "2026-07-27T05:17:38Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 612,
          "created_at": "2026-07-27T05:17:49Z",
          "last_comment_at": "2026-07-27T05:18:28Z",
          "last_comment_author": "github-actions"
        }
      ],
      "last_merged_pr_at": "2026-07-21T01:58:41Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 539,
          "created_at": "2026-07-18T16:42:02Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 542,
          "created_at": "2026-07-18T23:43:49Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 544,
          "created_at": "2026-07-18T23:43:51Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 545,
          "created_at": "2026-07-18T23:43:52Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 546,
          "created_at": "2026-07-18T23:43:53Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 547,
          "created_at": "2026-07-18T23:44:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 548,
          "created_at": "2026-07-18T23:44:05Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 549,
          "created_at": "2026-07-18T23:44:06Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 550,
          "created_at": "2026-07-18T23:44:07Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 551,
          "created_at": "2026-07-18T23:44:08Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 552,
          "created_at": "2026-07-18T23:44:09Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 589,
          "created_at": "2026-07-20T00:21:09Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/goosewobbler/releasekit",
    "host": "github.com",
    "name": "releasekit",
    "owner": "goosewobbler"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 68,
      "inputs": {
        "security": 59,
        "vitality": 87,
        "community": 51,
        "governance": 57,
        "engineering": 83
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 87,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "commits_last_year": 836,
              "human_commit_share": 0.76,
              "days_since_last_push": 0,
              "active_weeks_last_year": 20
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "20/52 weeks with commits",
                "points": 13.8,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 20
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "836 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 836
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v0.41.2",
              "releases_from_tags": false,
              "days_since_latest_release": 6,
              "mean_days_between_releases": 2.4
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 6 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~2.4 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 2.4
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 51,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 1,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "1 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "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": "good",
            "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": 75,
            "inputs": {
              "packages": [
                "@releasekit/notes",
                "@releasekit/publish",
                "@releasekit/release",
                "@releasekit/version"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 31495
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "31,495 downloads/month across npm",
                "points": 60,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 31495,
                      "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": 57,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 13,
            "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 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "merged_prs": 397,
              "open_issues": 12,
              "closed_issues": 152,
              "issue_closed_ratio": 0.927,
              "closed_unmerged_prs": 46
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "93% of issues closed",
                "points": 43.3,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 93
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "397/443 decided PRs merged",
                "points": 34.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 397,
                      "decided": 443
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/21 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 56,
            "inputs": {
              "followers": 23,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "goosewobbler",
              "public_repos": 105,
              "account_age_days": 5771
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "23 followers of goosewobbler",
                "points": 9.9,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 23,
                      "login": "goosewobbler"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "105 public repos, account ~15 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 105
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 15
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@releasekit/notes",
                "@releasekit/publish",
                "@releasekit/release",
                "@releasekit/version"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 6
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "4 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 4,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 6 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "150 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 150
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 83,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 88,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "24 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 24
                    }
                  }
                ],
                "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": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "28 out of 30 merged PRs checked by a CI test -- score normalized to 9",
                "points": 18,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "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": null,
                "points": 0,
                "status": "missed",
                "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 59,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 52,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 5.2
            },
            "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 not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "28 out of 30 merged PRs checked by a CI test -- score normalized to 9",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/21 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool detected but not run on all commits",
                "points": 4.5,
                "status": "partial",
                "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": "11 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Matched the npm:@releasekit/notes@0.41.2 runtime dependency closure — what installing the published package pulls in — 49 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:@releasekit/notes@0.41.2",
                  "assessed": 49
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 85,
            "inputs": {
              "source": "osv",
              "advisories": 1,
              "affected_packages": 1,
              "assessed_packages": 49,
              "unassessed_packages": 0,
              "affected_by_severity": "high 1",
              "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": "1 affected: brace-expansion 2.1.2 (high 7.5)",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 1,
                      "packages": "brace-expansion 2.1.2 (high 7.5)"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory has been public longer than 90 days",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "advisories_none_stale",
                    "params": {
                      "days": 90
                    }
                  }
                ],
                "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": 49,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 3
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 79,
        "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": 1,
              "agent_instruction_files": [
                "AGENTS.md",
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 1703
            },
            "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": "76 of 76 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 76,
                      "sampled": 76
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "pnpm-lock.yaml"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "packages/config/tsconfig.json",
                "packages/core/tsconfig.json",
                "packages/forge/tsconfig.json",
                "packages/git/tsconfig.json",
                "packages/notes/tsconfig.json",
                "packages/publish/tsconfig.json",
                "packages/release/tsconfig.json",
                "packages/version/tsconfig.json",
                "test/integration/tsconfig.json"
              ],
              "agent_commit_share": 0.76,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.12
            },
            "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": "packages/config/tsconfig.json, packages/core/tsconfig.json, packages/forge/tsconfig.json, packages/git/tsconfig.json, packages/notes/tsconfig.json, packages/publish/tsconfig.json, packages/release/tsconfig.json, packages/version/tsconfig.json, test/integration/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "packages/config/tsconfig.json, packages/core/tsconfig.json, packages/forge/tsconfig.json, packages/git/tsconfig.json, packages/notes/tsconfig.json, packages/publish/tsconfig.json, packages/release/tsconfig.json, packages/version/tsconfig.json, test/integration/tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "76 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 76,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "12 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 12,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 154639,
              "source_files_sampled": 398,
              "oversized_source_files": 4
            },
            "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": "4/398 source files over 60KB",
                "points": 54.4,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 398,
                      "oversized": 4
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "moderate",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": true,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T20:48:03.490973Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/g/goosewobbler/releasekit.svg",
  "full_name": "goosewobbler/releasekit",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.27.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистикаnpm.