Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 34769,
"has_wiki": true,
"homepage": "https://github.com/callmemorgan/claude-statusline",
"languages": {
"Go": 547851,
"Shell": 1420,
"Python": 11115,
"Makefile": 1080,
"JavaScript": 10754,
"TypeScript": 4810
},
"pushed_at": "2026-07-17T04:56:44Z",
"created_at": "2026-05-22T16:18:32Z",
"owner_type": "User",
"updated_at": "2026-07-17T04:56:48Z",
"description": "Statusline renderer for Claude Code, Antigravity CLI (agy), and Pi",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "Go",
"significant_languages": [
"Go"
]
},
"owner": {
"blog": null,
"name": "Morgan Allen",
"type": "User",
"login": "callmemorgan",
"company": "SkySlope",
"location": "Sacramento, CA",
"followers": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/3580971?v=4",
"created_at": "2013-02-13T03:58:14Z",
"is_verified": null,
"public_repos": 13,
"account_age_days": 4912
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v1.8.4",
"kind": "patch",
"published_at": "2026-07-17T04:58:59Z"
},
{
"tag": "v1.8.3",
"kind": "patch",
"published_at": "2026-07-09T21:54:48Z"
},
{
"tag": "v1.8.2",
"kind": "patch",
"published_at": "2026-07-09T18:41:11Z"
},
{
"tag": "v1.8.1",
"kind": "patch",
"published_at": "2026-07-09T18:12:30Z"
},
{
"tag": "v1.8.0",
"kind": "minor",
"published_at": "2026-07-04T15:36:11Z"
},
{
"tag": "v1.7.2",
"kind": "patch",
"published_at": "2026-06-22T17:18:20Z"
},
{
"tag": "v1.7.1",
"kind": "patch",
"published_at": "2026-06-22T17:04:30Z"
},
{
"tag": "v1.7.0",
"kind": "minor",
"published_at": "2026-06-21T20:09:18Z"
},
{
"tag": "v1.6.1",
"kind": "patch",
"published_at": "2026-06-19T05:42:03Z"
},
{
"tag": "v1.5.2",
"kind": "patch",
"published_at": "2026-06-19T01:29:58Z"
},
{
"tag": "v1.5.1",
"kind": "patch",
"published_at": "2026-06-18T23:12:06Z"
},
{
"tag": "v1.4.1",
"kind": "patch",
"published_at": "2026-06-18T18:02:06Z"
},
{
"tag": "v1.4.0",
"kind": "minor",
"published_at": "2026-06-18T17:47:32Z"
},
{
"tag": "v1.3.2",
"kind": "patch",
"published_at": "2026-06-18T16:10:08Z"
},
{
"tag": "v1.3.1",
"kind": "patch",
"published_at": "2026-06-18T15:10:04Z"
},
{
"tag": "v1.3.0",
"kind": "minor",
"published_at": "2026-06-16T03:55:23Z"
},
{
"tag": "v1.2.4",
"kind": "patch",
"published_at": "2026-06-15T02:21:58Z"
},
{
"tag": "v1.2.3",
"kind": "patch",
"published_at": "2026-06-15T02:08:57Z"
},
{
"tag": "v1.2.2",
"kind": "patch",
"published_at": "2026-06-15T01:47:33Z"
},
{
"tag": "v1.2.1",
"kind": "patch",
"published_at": "2026-06-15T01:38:00Z"
},
{
"tag": "v1.2.0",
"kind": "minor",
"published_at": "2026-06-14T15:51:10Z"
},
{
"tag": "v1.1.0",
"kind": "minor",
"published_at": "2026-06-12T21:41:27Z"
},
{
"tag": "v1.0.2",
"kind": "patch",
"published_at": "2026-06-12T03:48:58Z"
},
{
"tag": "v1.0.1",
"kind": "patch",
"published_at": "2026-06-10T16:43:50Z"
},
{
"tag": "v1.0.0",
"kind": "major",
"published_at": "2026-06-10T14:02:25Z"
},
{
"tag": "v0.3.0",
"kind": "minor",
"published_at": "2026-06-02T03:36:39Z"
},
{
"tag": "v0.2.1",
"kind": "patch",
"published_at": "2026-05-30T15:40:45Z"
},
{
"tag": "v0.2.0",
"kind": "minor",
"published_at": "2026-05-30T06:07:00Z"
},
{
"tag": "v0.1.2",
"kind": "patch",
"published_at": "2026-05-30T05:53:14Z"
},
{
"tag": "v0.1.1",
"kind": "patch",
"published_at": "2026-05-30T05:33:38Z"
},
{
"tag": "v0.1.0",
"kind": "minor",
"published_at": "2026-05-29T00:59:23Z"
}
],
"recent_commits": [
{
"oid": "e414636a04161de05e61ded891507eb57d172965",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: changelog for v1.8.4",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-17T04:56:18Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a0d700c05f652e48f768f5f78d04501d66df8039",
"body": "…ota shim\n\nClaude Code namespaces its macOS keychain item per CLAUDE_CONFIG_DIR\n(\"Claude Code-credentials-<sha256[:8]>\"); the shim previously always read\nthe unsuffixed default entry, reporting the wrong account's quota on\nmulti-profile machines. The shim now resolves a profile\n([quota_shim].claude_\n[…]\nes never\nclobber each other; the detached quota-refresh worker re-resolves from\nconfig + inherited env so it always agrees with the render path.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(quota): per-profile keychain, cache, and lock scoping for the qu…",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-17T04:56:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "367f694feffb44f9a6f1b641f2d8ab580061294a",
"body": "Claude Code's statusline payload never carries seven_day_overage_included,\nseven_day_sonnet, seven_day_opus, or model_scoped — that parsing was\nspeculation about an unshipped wire format. Remove it: RateLimits carries\nonly the documented five_hour/seven_day windows, and ModelScoped is a\nshim-only fi\n[…]\nA regression test pins\nthat model-class keys on the wire are ignored. If Claude Code ships the\nfields, add parsing back against the real schema.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor(payload)!: model-class weekly windows are quota-shim-only",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-09T21:52:05Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7f4bf3d23b264d4e5dd170e1cca2765b2c191ebb",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: changelog for v1.8.2",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-09T18:38:12Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "92d56e01ea3db3dfbd991c8490969cf61fa0befc",
"body": "Inactive shim windows come back with resets_at null; render the bar\nwithout the (?) placeholder instead.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(segments): omit rate-limit countdown when resets_at is absent",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-09T18:38:12Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "86cae622949fff9f3d82522c2a674afb05bf8e4f",
"body": "Claude Code's statusline payload does not yet carry the model-class weekly\nwindows, so rate-limit-fable/-sonnet/-opus self-hide. The new opt-in\n[quota_shim] table bridges the gap: a detached quota-refresh worker fetches\napi.anthropic.com/api/oauth/usage (the data behind `claude /usage`) and\ncaches t\n[…]\ntages and reset\ntimes are cached, never the OAuth token (env, macOS keychain, or\n.credentials.json). New `quota` subcommand verifies end-to-end.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(quota): OAuth quota shim for the model-class weekly bars",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-09T18:38:02Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "60566622758cebf9c473c86483fca57e6fa217c4",
"body": "npm@latest is now 12.0.0, which omits the bundled sigstore module\nand breaks `npm publish --provenance` (npm/cli#9722). Pin to the\n11.x line so OIDC trusted publishing keeps working.\n\nCo-authored-by: Grok <grok@x.ai>",
"is_bot": false,
"headline": "ci: pin npm to 11.x for provenance publish",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-09T18:10:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2b3c260d596614d9f0a18c40242cca252b84eb05",
"body": "Co-authored-by: Grok <grok@x.ai>",
"is_bot": false,
"headline": "docs: changelog for v1.8.1",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-09T18:01:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7ba5a746d06ebb6740370ac4b69dae74d19eb741",
"body": "* feat(segments): add Fable/Sonnet/Opus weekly rate-limit bars\n\nParse model-class weekly windows (seven_day_overage_included, seven_day_sonnet,\nseven_day_opus, optional model_scoped) and render them like the existing 5h/7d\nbars. Auto-insert rate-limit-fable after rate-limit-7d on schema v2 upgrade.\n\n[…]\nor users with rate-limit-7d. Stamping schema\nversion 2 without the insert left those configs stuck without the Fable bar.\n\nCo-authored-by: Grok <grok@x.ai>\n\n---------\n\nCo-authored-by: Grok <grok@x.ai>",
"is_bot": false,
"headline": "feat(segments): Fable/Sonnet/Opus weekly rate-limit bars (#23)",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-09T18:00:43Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "81ebb05863ff3c94d903b4133a43248a00d84af0",
"body": "…oldens",
"is_bot": false,
"headline": "feat(config): enable new Claude Code segments by default and update g…",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-04T14:37:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3e16f799b4814b53ac6c592326df9d69c24c74de",
"body": null,
"is_bot": false,
"headline": "docs: update AGENTS.md Makefile reference and changelog for v1.8.0",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-04T14:33:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "74b1db412222de4f01a4dec4bb91aa3212aade97",
"body": null,
"is_bot": false,
"headline": "chore: add root package.json for Biome dev tooling",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-04T14:33:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "71a92ba06eac2b7ed709538881b7fc418f330648",
"body": null,
"is_bot": false,
"headline": "chore: fix Biome lint/format issues in npm shim and build script",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-04T14:33:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c79d8f96687a799d15ed743c07b54d8526ac8ef6",
"body": "Documents the new segments, install flags, subagentStatusLine hook, and expanded payload fields in the README, embedded README, help text, debug schema, and example config.",
"is_bot": false,
"headline": "docs: update README, help, config example, debug schema",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-04T14:29:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "66296c4b612ad77b0f9330f94bb38fa916588579",
"body": "Adds --refresh-interval, --hide-vim-mode-indicator, and --statusline-padding install flags. Adds the subagent-statusline subcommand and --subagent-statusline wiring, with tests for both.",
"is_bot": false,
"headline": "feat(install): support statusLine options and subagentStatusLine hook",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-04T14:29:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c8059642e8ff2cb9031d51d29260a3dae4d3d7e5",
"body": "…ee enrichment\n\nAdds five new built-in segments (prompt-id, pr, repo, thinking) and opt-in git-branch settings to show the worktree path and original branch. Includes setting specs and renderer tests.",
"is_bot": false,
"headline": "feat(segments): add prompt-id, pr, repo, thinking segments and worktr…",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-04T14:29:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5d485c95e5fd6c2f624875724c37b58610ff4ea0",
"body": "Adds prompt_id, pr, workspace.repo, full worktree metadata, and thinking.enabled to the payload struct and the claude-full test fixture.",
"is_bot": false,
"headline": "feat(payload): add new Claude Code statusline fields",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-07-04T14:29:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3f72c700e0c8d02625d576c7b302d1c985599fed",
"body": null,
"is_bot": false,
"headline": "docs(agents): strengthen CHANGELOG update requirement before tagging",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-22T17:26:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "95714e3bd8ff216b5d4f3c4e11f143be84bfe222",
"body": null,
"is_bot": false,
"headline": "docs: highlight plugin preview values in v1.7.2 changelog",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-22T17:14:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "32d6cbf41de4e3985e52c19b74af37881dcd9a13",
"body": "The post-upgrade takeover was reserving its last line for a config hint,\nwhich crowded out real CHANGELOG bullets when space was limited. Drop the\nhint and use every available line for the version header and bullets.\n\n- Remove the \"configure: [release_notes]\" hint from announceLines.\n- Remove the \"claude-statusline release-notes\" suffix from the n=1\n compressed form.\n- Pad shorter announcements with blank lines instead of a hint.\n- Update tests and add a v1.7.2 CHANGELOG entry.",
"is_bot": false,
"headline": "feat(releasenotes): show actual release notes in the takeover",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-22T17:10:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3a5d31bd758e717e1999b60887ec8a2661c5b2eb",
"body": "Run test, lint, and Node jobs before GoReleaser in release.yml and\ndelete the separate ci.yml workflow. Update AGENTS.md accordingly.",
"is_bot": false,
"headline": "ci: fold CI checks into release workflow",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-22T17:05:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e588ef1736306050edc472e5eacbc63a01034d85",
"body": null,
"is_bot": false,
"headline": "docs: sync embedded changelog",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-22T17:05:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1ae0efee997ffbbd4895d1822344b3517f8a6f2e",
"body": null,
"is_bot": false,
"headline": "docs: changelog for v1.7.1",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-22T17:02:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "66d558247b3832a9c3d520e23a5a8005f397ffb9",
"body": "- Mark plugin segments with 📌 in the segment list.\n- Add a \"📌 plugin\" hint to the footer when plugins exist.\n- Let plugins declare a \"preview\" sample value used in the TUI\n assembler, per-segment preview, demo mode, and v terminal view.\n- Thread a Preview flag through render.Input and segments.RenderCtx\n so the real stdin->stdout render path is unaffected.\n- Update README and configs/config.toml.example with examples.",
"is_bot": false,
"headline": "feat(plugins,tui): make plugins visible in the TUI assembler",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-22T17:00:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0d158a37b7227a7b7cde2ed2767b9d72c4e28f7e",
"body": null,
"is_bot": false,
"headline": "feat(npm): add dedicated readmes for every published package",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-21T20:07:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9ed9037a8c074824c338e554106d256eab6747c6",
"body": "Pi sent session_id, but renderSessionName only reads SessionName/ConversationID, so the Pi session identifier never displayed. The Pi extension now also emits conversation_id; session_id stays for per-session state keying.\n\nrenderTokens never self-hid, so a harness that sends no token counts (Pi) re\n[…]\nged/etc.\n\nUpdate the pi-full fixture, regenerate the minimal and pi-full goldens, and sync the README harness matrix and Pi notes.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: render session-name under Pi and self-hide zero-count tokens",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T16:08:48Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e31c690ddb0a61d89692e4bb1fa08539617f6b89",
"body": "Sharpen the tagline and lead-in, and fix the built-in segment count (from 24 to 26, verified against allSegmentInfos).\n\nAdd a Harness support matrix covering Claude Code, Antigravity, and Pi, grounded in the segment renderers and the Pi extension's payload builder. Correct the Pi section accordingly\n[…]\ndo not render under Pi, and version is Claude Code + Antigravity only. Keep README.md and cmd/claude-statusline/README.md in sync.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: polish README intro and add segment/harness support matrix",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T13:52:36Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "78d7b4d8e3e4a73e1dec7219ac83f818e320aa2c",
"body": null,
"is_bot": false,
"headline": "docs(readme): fix Antigravity website URL",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T06:09:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e7233aac4085bd25a2c7b612aeac0fb6e6b59291",
"body": "…S.md\n\n- README/AGENTS/.goreleaser.yaml/npm package.json now use 'Pi' and\n 'Antigravity' consistently (commands/flags/package names remain lowercase).\n- Added the CLI error: bubbletea: error opening TTY: bubbletea: could not open TTY: open /dev/tty: device not configured reference on first Antigravity use and renamed headings.\n- CLAUDE.md is now a symlink to AGENTS.md so the two cannot drift.\n- Created GitHub issues #16 and #17 for Pi/Antigravity TUI preview modes.",
"is_bot": false,
"headline": "docs: capitalize Pi/Antigravity naming and symlink CLAUDE.md to AGENT…",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T06:01:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a9d009ae8c650ee723d8ed372270c9d0ab00d526",
"body": "The v1.6.0 cask collided with the existing claude-statusline formula in the\ntap, breaking brew upgrade and auto-update for existing installs. Go back to\nthe brews formula in GoReleaser and restore the pre-1.6.0 install/upgrade\ncommands. A cask under a different token (agents-statusline) will be added\nseparately later.",
"is_bot": false,
"headline": "fix(release): revert Homebrew distribution to formula",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T05:39:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "94e059c1dcff250cdaec81de544271d68bb02be7",
"body": null,
"is_bot": false,
"headline": "docs: changelog for v1.6.0",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T05:15:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3e20c8b3bf9525cdeee23087a975f3f72a0dc852",
"body": "…age.json",
"is_bot": false,
"headline": "style(js): fix biome lint/format errors in build scripts and npm pack…",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T05:13:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3ef1bfc52c62d1e6e8db25bff39595c825ea03c8",
"body": "…uild pipeline",
"is_bot": false,
"headline": "refactor(cmd): move entry point to cmd/claude-statusline and update b…",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T05:11:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "84b5dad7a6d600c1475bbc6dcf066df2f2b05050",
"body": null,
"is_bot": false,
"headline": "refactor(tui): move configure TUI into internal/tui",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T05:05:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ca2429f79239d15f31afdf6025981afadf2a0e30",
"body": "…al packages\n\nMoves install.go/update.go/releasenotes.go (and their tests) into\n\ninternal/install, internal/update, and internal/releasenotes. Shared\n\nversion helpers (IsReleaseVersion, CompareVersions, ParseVersion) move to\n\ninternal/version to break the update/releasenotes import cycle.\n\nHard-link embedded assets (CHANGELOG.md, release/cosign.pub) into the\n\nnew package directories so //go:embed can resolve them without '..' paths.",
"is_bot": false,
"headline": "refactor(update): move install, update, and release-notes into intern…",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T05:01:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "83db8003df7b9738877eb6c3fbcfb9d6d322c811",
"body": null,
"is_bot": false,
"headline": "docs: update build/test and architecture notes for internal packages",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T04:46:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b94139f24aa92368f645c9f5fff27ed616d3dad9",
"body": "…al packages",
"is_bot": false,
"headline": "refactor(segments): move segments, rendering, and plugins into intern…",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T04:45:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2d72da83ebc5ea898104bce067d5cad6e01b0c16",
"body": "…rnal/config",
"is_bot": false,
"headline": "refactor(config): move config, migrate, schema, and presets into inte…",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T04:01:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3eb7dd0f657428422ff511d72576fb94707590a9",
"body": "…lette, sys, ansi)",
"is_bot": false,
"headline": "refactor: extract leaf internal packages (payload, version, state, pa…",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T03:28:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7b63d738512c64ec8b5337704be1ed7682828be3",
"body": null,
"is_bot": false,
"headline": "refactor: move release artifacts into release/ and configs/",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T03:11:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4db3a23b9fb173229e0ef79e05d1cdf2233de9f6",
"body": "GoReleaser deprecated brews for precompiled binaries in v2.10/v2.16.\nSwitch .goreleaser.yaml to homebrew_casks, keep the same tap, and add a\npost-install hook that removes the macOS quarantine bit (unsigned binary).\n\nAlso update the auto-update path and docs to use brew upgrade --cask,\ndetect Caskroom installs, and ignore the GoReleaser dist/ directory.",
"is_bot": false,
"headline": "fix(goreleaser): migrate Homebrew formula to cask",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T01:58:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "812973d7e5cf3063b8eac9142be847db034128af",
"body": "- TypeScript extension wires claude-statusline into pi's footer on\n session/turn/model events\n- npm package declares pi extension entry point; build script packages it\n- README/TESTING/docs update install and smoke-test instructions\n- CI adds pi extension smoke test\n- Sample payload + golden test for pi render output\n- Regenerate theme screenshots",
"is_bot": false,
"headline": "feat(pi): add first-class pi extension support",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-19T01:27:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "30c5694dbe2f990de600002568de322185b9fa98",
"body": "The context-window and rate-limit bars produce the longest rendered line,\nwhich was being truncated in the README screenshots. Increase WINDOW_WIDTH\nfrom 950 to 1150 CSS pixels so the full third line fits inside the capture\nwindow, and regenerate all theme screenshots.",
"is_bot": false,
"headline": "fix(screenshots): widen capture window to prevent bar overflow",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T23:19:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2192590d1a63221916ddf1a974fc6fb35ed67f05",
"body": null,
"is_bot": false,
"headline": "docs: document Node checks in CI workflow",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T23:13:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8c3a0ec822c9df5980579a554ae840d1236a3384",
"body": "Now that the npm shim and build script are part of the release, run them\nthrough CI on every tag push:\n\n- Syntax-check the npm shim and scripts/build-npm.mjs with node --check.\n- Build the Go binary and exercise the shim via CLAUDE_STATUSLINE_BIN so a\n working payload round-trips through the Node entrypoint.",
"is_bot": false,
"headline": "ci: add Node checks to CI workflow",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T23:12:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "85e9a0379f8c9a967dd5cf9d71002f09668157f1",
"body": "Add [release_notes].max_lines to control how many lines the post-upgrade\nannouncement may occupy. Accepts an integer (0 = keep the statusline's own\nheight) or symbolic strings like \"status-line\" / \"same-as-status-line\".\n\n- Default is 10 lines, so a typical minor-version update fits without\n truncat\n[…]\nrminal's width reserves.\n- The takeover never shrinks below the statusline's normal line count.\n- validateConfig warns and resets invalid values.\n\nBump the in-progress release notes section to v1.5.1.",
"is_bot": false,
"headline": "feat(release-notes): configurable takeover height via max_lines",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T23:07:23Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "09116cbea58bb5ddfda9822d6e8fbac95e299839",
"body": "…mmaries\n\nAdd a 32-bit importance field to every changelog bullet via leading [N]\nmarkers in CHANGELOG.md. Ordinary items use 0-5; pinned/critical items\ncan use much larger values (e.g. 99999) to force top placement.\n\n- Sort bullets by descending importance in release-notes output and the\n post-upg\n[…]\n jumping v1->vN\n see the highest-impact changes across the whole span.\n- Render importance >= 100 bullets with a [PINNED] prefix.\n- Backfill importance markers across the entire CHANGELOG.md history.",
"is_bot": false,
"headline": "feat(release-notes): importance-weighted bullets and cross-version su…",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T22:47:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c24a3f922ecf7ce0f6a1366a148f062f2a53c62e",
"body": "- Add Makefile with lint/fmt/vet/test/check targets\n\n- Ignore .claude/ local state and worktrees\n\n- Remove unused pathKnown field in installTarget\n\n- Add nolint annotation for best-effort prompt read\n\n- Simplify color picker row increment\n\n- Reformat npm shim with Biome",
"is_bot": false,
"headline": "chore(dev): add Makefile, ignore .claude, apply lint cleanups",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T20:40:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f50eec3abd26c479237dbf099fa1eaa08728282c",
"body": null,
"is_bot": false,
"headline": "docs: update agent guidance for new themes, platforms, and CI workflow",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T18:03:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0ac08b415f7145560df830d4e3b8286f85eb8839",
"body": null,
"is_bot": false,
"headline": "docs: changelog for v1.4.1",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T18:00:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b12520bc1cdda177944230c568c6ba3217b9c7fb",
"body": null,
"is_bot": false,
"headline": "fix(release): remove accidental pi extension dependency and fix gofmt",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T17:59:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2f4b977587030ca80c95350ce3678aa0f3de7d9c",
"body": null,
"is_bot": false,
"headline": "docs: changelog for v1.4.0",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T17:45:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "22ea75a51c932a66a6d2a46e5a08a68614bf3bc4",
"body": null,
"is_bot": false,
"headline": "docs: add commit message conventions to AGENTS.md",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T17:45:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "df70cbbc6fb55d3eeefe35275da97b6c73cf2171",
"body": null,
"is_bot": false,
"headline": "build: add windows/arm64 and linux/arm platform packages",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T16:26:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f86e44e471d722278ef1325dc49aba8f31054ad",
"body": null,
"is_bot": false,
"headline": "ci: run lint/test workflow only on tag pushes",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T16:12:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "706933cf0957b86cc894b1fd00a0714d3799a33f",
"body": null,
"is_bot": false,
"headline": "ci: add lint/test workflow with golangci-lint v2 config",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T16:11:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "85a73537f71a8500991cde5f3dd00ac7b10a4b07",
"body": null,
"is_bot": false,
"headline": "docs: changelog for v1.3.2",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T16:08:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "21a4cd476d47ce43f142d25fa0ecbb0c5739be7e",
"body": null,
"is_bot": false,
"headline": "Ignore local node_modules for dev tooling",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T16:06:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "af7a6a5c4373a3c5c970266225c4f109b648b253",
"body": null,
"is_bot": false,
"headline": "Regenerate theme screenshots including new light and monochrome themes",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T15:41:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c78ce865af3dcc7feb0754125d512ef27948f1fa",
"body": null,
"is_bot": false,
"headline": "Document new light and monochrome themes",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T15:38:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "df195f782ee52a6a1519598b0637fe482be854e1",
"body": null,
"is_bot": false,
"headline": "Add paper, solarized-light, and monochrome themes",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T15:38:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "08f6390919f3893c193a5efd2ffabb1db1de28a4",
"body": "- Update GoReleaser archive config: format -> formats (v2.6 deprecation).\n- Bump GitHub Actions to Node 24 runtimes:\n - actions/checkout@v6 -> v7\n - actions/upload-artifact@v4 -> v7\n - actions/download-artifact@v4 -> v8\n - actions/setup-node@v4 -> v6\n- Leave brews as-is: migrating to homebrew_casks would drop Linuxbrew\n support (casks are macOS-only) for a cross-platform CLI tool.",
"is_bot": false,
"headline": "ci: resolve release-workflow warnings",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T15:19:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d47a1a456523f9510c780389d549c5555fc5abff",
"body": "This reverts commit 840d69004c656ce8cca7a3385e8662b31f504d58.",
"is_bot": false,
"headline": "Revert \"ci: resolve release-workflow warnings\"",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T15:18:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "77af949a6d3dd90b342938a8194818dd15a2d3cb",
"body": "This reverts commit 882a301adbb73709068ac33f98b9df63194a2f35.",
"is_bot": false,
"headline": "Revert \"ci: add supporting config for the new CI workflow\"",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T15:18:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "882a301adbb73709068ac33f98b9df63194a2f35",
"body": "Adds .golangci.yml, Biome config, package manifests, and the pi extension\nsource so the ci.yml workflow pushed in the previous commit can run.",
"is_bot": false,
"headline": "ci: add supporting config for the new CI workflow",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T15:17:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "840d69004c656ce8cca7a3385e8662b31f504d58",
"body": "- Update GoReleaser archive config: format -> formats (v2.6 deprecation).\n- Bump GitHub Actions to Node 24 runtimes:\n - actions/checkout@v6 -> v7\n - actions/upload-artifact@v4 -> v7\n - actions/download-artifact@v4 -> v8\n - actions/setup-node@v4 -> v6\n - actions/setup-go@v5 -> v6\n - golangci/golangci-lint-action@v6 -> v9\n- Leave brews as-is: migrating to homebrew_casks would drop Linuxbrew\n support (casks are macOS-only) for a cross-platform CLI tool.",
"is_bot": false,
"headline": "ci: resolve release-workflow warnings",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T15:15:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "802b34f70f32ac8f17147756824456a04b989e45",
"body": "Aged newsprint palette: warm greys and sepia tones on dark stock.\nIncludes README/help/example updates, screenshot script wiring, and\ngenerated gallery asset.",
"is_bot": false,
"headline": "Add newsprint theme",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-18T15:06:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2b5cddf50523e970fda14daa0633c3c629cc02f4",
"body": "The auto-update spec predated npm distribution and never mentioned kindNpm.\nDocument the npm carve-out in docs/specs/auto-update.md (decision tree, the\n\"decisions already made\" list, detectInstallKind ordering, the worker's\nstep-3 exit, and the foreground `update` subcommand branch), and fix the\nREADME `auto` mode comment that still said \"manual installs only\" (Homebrew\nauto-upgrades too; npm is the excluded one).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: bring auto-update docs current with npm install kind",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-16T04:18:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "b31b24b1cb692ddb8141d64fbdf334373b29c9f9",
"body": "Publish every GitHub release to npm as @morgan.rebrand/claude-statusline:\na tiny Node shim that execs the correct prebuilt binary from per-platform\noptionalDependencies (@morgan.rebrand/claude-statusline-<os>-<cpu>).\nscripts/build-npm.mjs repacks the GoReleaser dist/ archives into the\nplatform packa\n[…]\nreflect that npm requires a package to exist before a trusted publisher\ncan be configured (manual bootstrap publish is mandatory).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(npm): distribute via npm with per-platform packages",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-16T03:53:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7c40cbc0c96b6be0aebe46c3db112576b3dc5188",
"body": "Previously the default reflow (\"\") behaved like \"cascade\", spilling segments\nacross physical lines whenever a logical line exceeded the terminal width. The\ndefault is now \"off\": each logical line is emitted as-is and the terminal\nsoft-wraps anything too wide. Opt back in with reflow = \"cascade\" or \"\n[…]\nentical, so existing default goldens are unchanged. Added a default-60 golden\n and a width-independence test for the new default.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(reflow): make line wrapping opt-in (default reflow = off) (#6)",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-15T02:20:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1e851ee7a3eb7ac9c5644946f84cd28470cb0d32",
"body": "`brew upgrade` runs with HOMEBREW_NO_AUTO_UPDATE=1 to stay fast, but that means\na stale local tap makes brew report \"already installed\" against an outdated\nformula — so a Homebrew install could never actually upgrade even while the\nupdate segment correctly showed a newer release (it checks GitHub di\n[…]\n our tap, and best-effort (any failure falls through to the upgrade\nagainst whatever is cached). Behind the refreshBrewTapFn seam.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(update): refresh the Homebrew tap before brew upgrade (#5)",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-15T02:07:22Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "88ca06e09a98c7cee4955f8f0f36e9b068ac9b4f",
"body": "Shows the git stash count (⚑N) and hides when there are no stashes. Runs a\ncached, bounded `git rev-list --walk-reflogs --count refs/stash` mirroring the\nrich git-branch status, with its own cache file so enabling both segments never\ncosts two uncached execs per render. A missing stash ref is treate\n[…]\nached; a transient git error falls back to the last cached count. Off by\ndefault (it runs git when enabled) — added via configure.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(segments): add opt-in git-stash segment (#4)",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-15T01:45:52Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3a6f37f1c2824ea1f08deed2c9c944f14eef583b",
"body": "…ation (#3)\n\nThe in-process signature verifier read the checksum signature only from the\nsigstore bundle field (messageSignature.signature), but a release's\nchecksums.txt.bundle may instead carry it under the legacy top-level\nbase64Signature field depending on the cosign version CI resolves. v1.2.0\n\n[…]\n update verify` runs the same signature check on demand and\n prints the embedded key fingerprint; installs nothing, fails closed.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(update): verify real release bundles; add update verify + confirm…",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-15T01:36:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "61776b3062055b30a8b7422d6db03eb5f47d7e54",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci: unpin cosign (custom version trips installer digest check)",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-14T15:49:40Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "5b0b489bd532c7625897b8c5fe707381b78dc10f",
"body": "v3.1.1 can't be installed by cosign-installer@v3 (pubkey digest\nmismatch), and v3.0.6 lacks the offline-bundle flags. Use cosign's\ndefault signing (records a Rekor hashedrekord) for cross-version\nstability; the in-process verifier reads only messageSignature and\nignores the tlog entry.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci: pin cosign v3.0.6 and use default signing flags",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-14T15:48:16Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "770a502c193cb39172d39a93718251a17b8f26ba",
"body": "The installer default (v3.0.6) lacks the --use-signing-config flag the\ngoreleaser signs block uses; pin to the validated version.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci: pin cosign to v3.1.1 for release signing",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-14T15:44:06Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "583998077f7f5f669a7900a850e0eae5cdf4f9fe",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: release v1.2.0 (signature verification + self-update hardening)",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-14T15:40:27Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e62bd750965b22c1ae8bcf5b9d1c39bff69725b7",
"body": "Auto-update now cryptographically verifies releases before installing.\nchecksums.txt is signed with a key-based cosign bundle and verified\nin-process against an embedded ECDSA public key (cosign.pub) — pure\nstdlib, no cosign needed at runtime — and fails closed on a missing or\ninvalid signature. Rel\n[…]\nd detection, lazy exe-path resolution on the render path, and\na clock-skew guard so the update segment can't pin its verbose hint.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(update): verify release signatures + harden self-swap",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-14T15:37:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e168baf9b3fdcbeaeaecd0b87c36bb59263c266a",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore: ignore .worktrees/",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-13T05:08:36Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "6e18c1c9f9a3a1d9be71f7d1b5156dd8da268db0",
"body": "Point-in-time design record for the auto-update feature: update the spec\nto reflect the isReleaseVersion carve-out and add the step-by-step\nimplementation plan.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: auto-update design spec and implementation plan",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-13T05:08:32Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f63c637b24135e101df74f286df3474b4ee476b3",
"body": "Add an [update] config table and a detached `update-check` worker that\nresolves the latest GitHub release, caches it under the state dir, and —\nin auto mode — either runs `brew upgrade claude-statusline` for Homebrew\ninstalls or atomically self-swaps the binary for manual installs\n(download → sha256\n[…]\ndirty, Go pseudo-versions) short-circuit the whole feature,\nmirroring the release-notes carve-out so tests and goldens stay inert.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: background update checks (notify/auto/off)",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-13T05:08:26Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2947442d627d85a0dc9a78d2fe68b8c7da75da27",
"body": "Hoist the timeout+5s staleness computation out of tryAcquireLock and\ninto its caller (trySpawnRefresher), so the lock helper can be shared by\ncallers that derive staleness differently — namely the new update-check\nworker. Behavior for async plugins is unchanged.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor: tryAcquireLock takes a staleness duration",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-13T05:08:15Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7b13332c1b6f8a7de304b182cbe5a0f5c85493dd",
"body": "Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Remove current-pr plugin example",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-13T01:42:33Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "0d5bd790857dcff863cdc2c0d0578423a5bbae05",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: mark auto-update spec in progress (handed off)",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-13T00:44:02Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ad8fd596ccef1d4ea62fac7e4719b434f41a0a47",
"body": "release-notes (shipped in v1.1.0, marked historical) and auto-update\n(planned, interview-settled). Specs are append-only decision logs;\ncode and CLAUDE.md remain the maintained truth.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: track design specs as point-in-time records",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-13T00:37:22Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7fc1549ac5f655742ace51a0c61ec89f263a7874",
"body": "`claude-statusline release-notes` prints notes for the current or any\npast version (`vX.Y.Z`, `--all`) from CHANGELOG.md, embedded at build\ntime via go:embed — CHANGELOG.md is now a build input and must ship\nwith every commit that touches releasenotes.go.\n\nAfter an upgrade, the render path replaces \n[…]\niled state writes all\ndegrade silently to the normal render. The takeover reuses the\nrenderer's line budgets via a new shared lineBudget helper.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: release-notes subcommand and post-upgrade announcement",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-12T21:35:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e6d3396e67315a3c68811dfb08e54eafb4501b71",
"body": null,
"is_bot": false,
"headline": "docs: async plugin docs and current-pr example",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-12T02:20:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5f800e3f4335e98997d649ca904d75fed9ae5496",
"body": null,
"is_bot": false,
"headline": "feat: async plugins with stale-while-revalidate caching",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-12T02:19:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6d2494d34b08e153b6dcaa488478d8d26fc819db",
"body": "Add rendered PNG screenshots to the README — a Tokyo Night hero shot,\nclassic Claude Code + agy renders in 'What it looks like', and a\nsix-theme gallery in the Themes section. All generated from actual\nrenderer output (synthetic payload + a fabricated hour of session\nhistory so burn rates, projections, and trends light up) by the new\nscripts/screenshots.py, which screenshots the ANSI via headless Chrome\nfor correct glyph fallback.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: real screenshots for the GitHub page",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-10T17:48:06Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "22a274a89514f3b66f9526f5a8f2c93a70876da2",
"body": "The claude install target hardcoded ~/.claude/settings.json, so users\nrunning Claude Code with a CLAUDE_CONFIG_DIR profile got the statusline\nwired into the wrong settings file. --settings-path still wins over both.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(install): honor CLAUDE_CONFIG_DIR when resolving settings.json",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-10T16:20:02Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d95171ca0dba22d9224ff29e44b648fd76d9872d",
"body": "Cover the work that landed after the G24 docs sweep across README,\nCLAUDE.md/AGENTS.md, TESTING.md, the CLI help, and the in-TUI help:\nsynthetic preview data, demo mode (d), the render-in-terminal view (v),\nfooter wrapping, and the 'original' theme alias. Adds two troubleshooting\nentries: checking t\n[…]\n.0+ reads\nconfig.toml — migration strands an older installed binary on defaults\nuntil config.json.bak is copied back or the binary is upgraded).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: catch docs up to the post-sweep TUI features",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-10T13:58:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "063c902d897e2437f5e4c57fa59e5ecd06d54190",
"body": "- v hides the TUI (tview Suspend) and renders the statusline with real\n escapes straight to the terminal, so themes can be judged against the\n actual background, font, and color handling instead of the in-TUI\n approximation. Enter returns to the configurator.\n- The footer key hints word-wrap onto\n[…]\nheme\n picker description and docs say so. Classic remains the default, so\n preexisting installs keep their original colors without any config.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(tui): terminal view (v), wrapping footer, 'original' theme alias",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-10T13:49:19Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0ad3838d0ebe7c32c14a800e5af4e7c723886885",
"body": "The TUI preview had no data source for several features, so toggling them\nchanged nothing:\n\n- State-derived features (cost-rate, →NN% projections, ↗ context trend)\n never rendered: neither preview passed a session state. The TUI now\n builds an hour of synthetic rising history (previewState) and th\n[…]\nsweeps 0→100 together, countdowns wind down,\nand cost and lines-changed grow, so threshold colors and reflow are\nvisible across the entire line.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(tui): every option previews — synthetic state, demo mode, git fix",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-10T13:39:49Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9a83d8cecf7b3750a0a189c1932c87821b5e8981",
"body": "Rewrite README.md around the 1.0 feature set: one-command install first,\n24-segment table, themes, burn-rate projections, presets, TOML config and\nplugin examples, and the new TUI key table. Rewrite CLAUDE.md (copied to\nAGENTS.md) for the multi-file layout, test suite, and isolated-HOME testing\ncaut\n[…]\n Update config.toml.example with\ntheme, color_depth, preset, [style], [theme_colors], and [state] keys.\n\nPart of the 1.0.0 overhaul (phase G24).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: full documentation sweep for 1.0.0",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-10T07:12:32Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d37569802f5264ab0f3bacf4f0f15fa21078d5be",
"body": "The TUI's h/? now opens a compact help overlay generated from the\nkeymap table (so it can never drift from the real bindings), grouped\nby context with a concepts primer; the full README moved one level\ndown behind r. The CLI help leads with the install command and the\nonboarding flow, documents ever\n[…]\nincluding themes, presets,\n[style], and [state], and lists all 24 segments with their current\nbehavior.\n\nPart of the 1.0.0 overhaul (phase F23).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: purpose-built help — in-TUI overlay and rewritten CLI help",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-10T07:03:55Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7806b1ead3e5ead39e4082d0650c9b21a5396f8c",
"body": "t opens a floating theme picker, p a preset picker — both leave the\nmain live preview visible underneath and apply the highlighted entry\nto it as you move; Enter keeps it, Esc restores the snapshot. Eight\nlayout presets ship (classic, minimal, zen, cost-tracker, git-focus,\nvim-coder, quota-watch, fu\n[…]\ncit segments, lines, settings, and\ntheme all win over it. Unknown names warn and fall back to defaults.\n\nPart of the 1.0.0 overhaul (phase F22).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(tui): theme and preset pickers with live preview, preset config key",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-10T07:02:21Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "81131a51e3decf78a4018c511768d7abc0cba923",
"body": "…cents\n\nShift+C on a segment (or Enter on a flyout color row) opens a floating\nswatch table: the active theme's semantic roles, the 16 ANSI names,\nand a session MRU of recently picked colors. Arrows navigate, hovering\nlive-previews against the statusline underneath, Enter picks, d resets\nto default,\n[…]\n— hex,\n256 index, theme role — is now a valid stored value, validated by\ncoerce against validColorSpec.\n\nPart of the 1.0.0 overhaul (phase F21).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(tui): color picker — swatch grid with theme roles, ANSI, hex, re…",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-10T06:59:06Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a373fafb76c4a241ab10f9650a6538d482c84229",
"body": "ansiToTview's hand-maintained 17-entry placeholder table becomes a\nreal SGR parser: 38;2;r;g;b truecolor and 38;5;n 256-index escapes\nmap to tview [#rrggbb] hex tags (via the xterm cube/gray decoder), the\nbasic 16 codes map to their standard hex values instead of the old\nbold-hack bright rendering, \n[…]\ntual colors in the configure TUI. Unknown\nSGR sequences disappear cleanly instead of leaking raw bytes.\n\nPart of the 1.0.0 overhaul (phase F20).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(tui): full SGR parser for preview colors — truecolor and 256",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-10T06:56:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7e1c9de563c39e5e6fd25d2f523643ca2938a585",
"body": "Pressing / reveals an input row above the segment list; the list\nfilters live on case-insensitive id/description substrings (the list\ntitle shows the active query). Enter keeps the filter and returns to\nthe list; Esc clears it — and Esc on the main screen clears an active\nfilter before it means quit\n[…]\nalready resolve through\nthe visible slice, so toggling/coloring/reordering filtered matches\njust works.\n\nPart of the 1.0.0 overhaul (phase F19).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(tui): / filter for the segment list",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-10T06:54:48Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "10e0d7decd9121cf7bb9588c528f9d231d0f8fcf",
"body": "The preview now reflows at the panel's real width (recomputed on\nterminal resize via a guarded SetBeforeDrawFunc) instead of rendering\nunwrapped at width 0 — what you see is finally what Claude Code gets.\nPressing w cycles a fixed-width override (auto → 80 → 60 → 40):\noverride mode renders lines ver\n[…]\n\nconstraint column so reflow behavior is visible before saving. The\npanel title shows the active width.\n\nPart of the 1.0.0 overhaul (phase F18).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(tui): width-aware live preview with w override",
"author_name": "Morgan Allen",
"author_login": "callmemorgan",
"committed_at": "2026-06-10T06:53:20Z",
"body_truncated": true,
"is_coding_agent": true
}
],
"releases_count": 31,
"commits_last_year": 177,
"latest_release_at": "2026-07-17T04:58:59Z",
"latest_release_tag": "v1.8.4",
"releases_from_tags": false,
"days_since_last_push": 10,
"active_weeks_last_year": 9,
"days_since_latest_release": 10,
"mean_days_between_releases": 3.1
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 42,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "github.com/callmemorgan/claude-statusline",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/callmemorgan/claude-statusline",
"is_deprecated": false,
"latest_version": "v1.8.4",
"repository_url": "https://github.com/callmemorgan/claude-statusline",
"versions_count": 31,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-17T04:56:18Z",
"latest_version_yanked": null,
"days_since_latest_publish": 10
}
]
},
"popularity": {
"forks": 0,
"stars": 5,
"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": false,
"bootstrap_files": [
"Makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"go.mod"
],
"largest_source_bytes": 47266,
"source_files_sampled": 63,
"oversized_source_files": 0,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 19271
},
"dependencies": {
"manifests": [
"go.mod",
"package.json"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"go",
"npm"
],
"dependencies": [
{
"name": "github.com/gdamore/tcell/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.13.9"
},
{
"name": "github.com/pelletier/go-toml/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.3.1"
},
{
"name": "github.com/rivo/tview",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.42.0"
},
{
"name": "golang.org/x/term",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.37.0"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 14,
"merged_prs": 6,
"open_issues": 3,
"closed_ratio": 0,
"closed_issues": 0,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "callmemorgan",
"commits": 177,
"avatar_url": "https://avatars.githubusercontent.com/u/3580971?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"release.yml"
],
"has_docs_dir": true,
"linter_configs": [
".golangci.yml"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"go.sum",
"package-lock.json"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 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": 0,
"reason": "0 out of 1 merged PRs checked by a CI test -- score normalized to 0",
"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/30 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": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "project was created within the last 90 days. Please review its contents carefully",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": 0,
"reason": "Project has not signed or included provenance with any releases.",
"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": 8,
"reason": "2 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "e414636a04161de05e61ded891507eb57d172965",
"ran_at": "2026-07-27T13:56:47Z",
"aggregate_score": 3,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-17T05:00:09Z",
"oldest_open_prs": [
{
"number": 7,
"created_at": "2026-06-16T15:49:29Z",
"last_comment_at": "2026-06-16T16:07:03Z",
"last_comment_author": "callmemorgan"
},
{
"number": 8,
"created_at": "2026-06-16T15:49:31Z",
"last_comment_at": "2026-06-16T16:07:04Z",
"last_comment_author": "callmemorgan"
},
{
"number": 9,
"created_at": "2026-06-16T15:49:33Z",
"last_comment_at": "2026-06-16T16:07:05Z",
"last_comment_author": "callmemorgan"
},
{
"number": 10,
"created_at": "2026-06-16T15:49:35Z",
"last_comment_at": "2026-06-16T16:07:06Z",
"last_comment_author": "callmemorgan"
},
{
"number": 11,
"created_at": "2026-06-16T15:49:38Z",
"last_comment_at": "2026-06-16T16:07:07Z",
"last_comment_author": "callmemorgan"
},
{
"number": 12,
"created_at": "2026-06-16T15:49:40Z",
"last_comment_at": "2026-06-16T16:07:08Z",
"last_comment_author": "callmemorgan"
},
{
"number": 13,
"created_at": "2026-06-16T15:49:42Z",
"last_comment_at": "2026-06-16T16:07:09Z",
"last_comment_author": "callmemorgan"
},
{
"number": 14,
"created_at": "2026-06-16T15:49:45Z",
"last_comment_at": "2026-06-16T16:07:10Z",
"last_comment_author": "callmemorgan"
},
{
"number": 15,
"created_at": "2026-06-16T15:49:47Z",
"last_comment_at": "2026-06-16T16:07:12Z",
"last_comment_author": "callmemorgan"
},
{
"number": 18,
"created_at": "2026-06-20T01:16:49Z",
"last_comment_at": "2026-06-20T01:44:56Z",
"last_comment_author": "callmemorgan"
},
{
"number": 19,
"created_at": "2026-06-20T01:16:52Z",
"last_comment_at": "2026-06-20T01:44:40Z",
"last_comment_author": "callmemorgan"
},
{
"number": 20,
"created_at": "2026-06-20T01:16:55Z",
"last_comment_at": "2026-06-20T01:44:40Z",
"last_comment_author": "callmemorgan"
},
{
"number": 21,
"created_at": "2026-06-20T01:16:58Z",
"last_comment_at": "2026-06-20T01:44:41Z",
"last_comment_author": "callmemorgan"
},
{
"number": 22,
"created_at": "2026-06-20T01:17:01Z",
"last_comment_at": "2026-06-20T01:44:42Z",
"last_comment_author": "callmemorgan"
}
],
"last_merged_pr_at": "2026-07-09T18:00:44Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 1,
"created_at": "2026-06-12T21:41:20Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 16,
"created_at": "2026-06-19T06:01:22Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 17,
"created_at": "2026-06-19T06:01:23Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/callmemorgan/claude-statusline",
"host": "github.com",
"name": "claude-statusline",
"owner": "callmemorgan"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"security": 30,
"vitality": 68,
"community": 29,
"governance": 44,
"engineering": 74
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "moderate",
"name": "Vitality",
"value": 68,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 53,
"inputs": {
"commits_last_year": 177,
"human_commit_share": 1,
"days_since_last_push": 10,
"active_weeks_last_year": 9
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 10 days ago",
"points": 28.8,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 10
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "9/52 weeks with commits",
"points": 6.2,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 9
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "177 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 177
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 31,
"latest_release_tag": "v1.8.4",
"releases_from_tags": false,
"days_since_latest_release": 10,
"mean_days_between_releases": 3.1
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "31 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 31
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 10 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 10
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~3.1 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 3.1
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"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": "critical",
"name": "Community & Adoption",
"value": 29,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 10,
"inputs": {
"forks": 0,
"stars": 5,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "5 stars",
"points": 9.8,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 5
}
}
],
"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": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "at_risk",
"name": "Sustainability & Governance",
"value": 44,
"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": "at_risk",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 38,
"inputs": {
"merged_prs": 6,
"open_issues": 3,
"closed_issues": 0,
"issue_closed_ratio": 0,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "0% of issues closed",
"points": 0,
"status": "missed",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 0
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "6/6 decided PRs merged",
"points": 38.2,
"status": "met",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 6,
"decided": 6
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "at_risk",
"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": 41,
"inputs": {
"followers": 1,
"owner_type": "User",
"is_verified": null,
"owner_login": "callmemorgan",
"public_repos": 13,
"account_age_days": 4912
},
"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": "1 followers of callmemorgan",
"points": 2.2,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 1,
"login": "callmemorgan"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "13 public repos, account ~13 yr old",
"points": 20.3,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 13
}
},
{
"code": "account_age_years",
"params": {
"years": 13
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"github.com/callmemorgan/claude-statusline"
],
"ecosystems": "go",
"any_deprecated": false,
"min_days_since_publish": 10
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on go",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "go"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 10 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 10
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "31 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 31
}
}
],
"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": 74,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 64,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "1 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 1
}
}
],
"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": ".golangci.yml",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yml"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "0 out of 1 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": "https://github.com/callmemorgan/claude-statusline",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://github.com/callmemorgan/claude-statusline",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": 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": "at_risk",
"name": "Security",
"value": 30,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": null,
"notes": [],
"value": 30,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 18,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 0,
"scorecard_aggregate": 3
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "0 out of 1 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"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/30 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": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"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": "2 existing vulnerabilities detected",
"points": 6,
"status": "partial",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 2
},
"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": 0.93,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 19271
},
"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": "93 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 93,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 82,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum",
"package-lock.json"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [
"Makefile"
],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [],
"agent_commit_share": 0.39,
"toolchain_manifests": [
"go.mod"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Makefile"
}
}
],
"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": ".golangci.yml",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yml"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "Go (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"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": "39 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 39,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 47266,
"source_files_sampled": 63,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Go (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/63 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 63,
"oversized": 0
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": false,
"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": 0,
"status": "missed",
"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",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-27T13:56:55.108730Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/c/callmemorgan/claude-statusline.svg",
"full_name": "callmemorgan/claude-statusline",
"license_state": "standard",
"license_spdx": "MIT"
}