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