Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [
"ai-agents",
"ai-coding",
"ast",
"code-graph",
"code-index",
"code-intelligence",
"code-navigation",
"codebase",
"css",
"cursor",
"dead-code",
"dependencies",
"devtools",
"mcp",
"model-context-protocol",
"refactoring",
"sarif",
"sqlite",
"static-analysis",
"typescript"
],
"is_fork": false,
"size_kb": 2752,
"has_wiki": true,
"homepage": "https://stainless-code.com/codemap",
"languages": {
"CSS": 1343,
"MDX": 78403,
"Astro": 21903,
"Shell": 4210,
"JavaScript": 56346,
"TypeScript": 2412478
},
"pushed_at": "2026-07-22T16:21:05Z",
"created_at": "2026-04-06T14:38:36Z",
"owner_type": "Organization",
"updated_at": "2026-07-22T16:23:19Z",
"description": "Cut AI-agent token waste ~90% — query a local SQLite structural index of your JS/TS/CSS codebase with SQL in one round-trip instead of 3–5 file reads. Symbols, imports, calls, components, CSS tokens, coverage, markers. CLI, MCP (21 tools), HTTP, GitHub Action, ESM API. 71 recipes; AST+resolver; SARIF/audit/baselines for CI.",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript"
]
},
"owner": {
"blog": "https://stainless-code.com/",
"name": "STAINLESS CODE",
"type": "Organization",
"login": "stainless-code",
"company": null,
"location": null,
"followers": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/188862219?v=4",
"created_at": "2024-11-18T12:13:00Z",
"is_verified": null,
"public_repos": 9,
"account_age_days": 615
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "@stainless-code/codemap@0.11.4",
"kind": "other",
"published_at": "2026-07-20T10:29:51Z"
},
{
"tag": "v0.11.3",
"kind": "patch",
"published_at": "2026-07-20T10:03:35Z"
},
{
"tag": "v0.11.2",
"kind": "patch",
"published_at": "2026-07-07T09:53:24Z"
},
{
"tag": "v0.11.1",
"kind": "patch",
"published_at": "2026-06-16T16:51:17Z"
},
{
"tag": "v0.11.0",
"kind": "minor",
"published_at": "2026-06-11T10:42:57Z"
},
{
"tag": "v0.10.1",
"kind": "patch",
"published_at": "2026-06-05T08:27:21Z"
},
{
"tag": "v0.10.0",
"kind": "minor",
"published_at": "2026-06-04T19:09:51Z"
},
{
"tag": "v0.9.5",
"kind": "patch",
"published_at": "2026-05-28T10:25:47Z"
},
{
"tag": "v0.9.4",
"kind": "patch",
"published_at": "2026-05-27T16:55:29Z"
},
{
"tag": "v0.9.3",
"kind": "patch",
"published_at": "2026-05-27T16:28:45Z"
},
{
"tag": "v0.9.2",
"kind": "patch",
"published_at": "2026-05-27T15:21:01Z"
},
{
"tag": "v0.9.1",
"kind": "patch",
"published_at": "2026-05-26T18:06:42Z"
},
{
"tag": "v0.9.0",
"kind": "minor",
"published_at": "2026-05-26T17:07:15Z"
},
{
"tag": "v0.8.0",
"kind": "minor",
"published_at": "2026-05-21T18:28:19Z"
},
{
"tag": "v0.7.5",
"kind": "patch",
"published_at": "2026-05-18T07:38:21Z"
},
{
"tag": "v0.7.4",
"kind": "patch",
"published_at": "2026-05-16T07:42:16Z"
},
{
"tag": "v0.7.3",
"kind": "patch",
"published_at": "2026-05-15T18:45:15Z"
},
{
"tag": "v0.7.2",
"kind": "patch",
"published_at": "2026-05-15T18:12:27Z"
},
{
"tag": "v0.7.1",
"kind": "patch",
"published_at": "2026-05-15T17:12:24Z"
},
{
"tag": "v0.7.0",
"kind": "minor",
"published_at": "2026-05-15T16:37:28Z"
},
{
"tag": "v0.6.1",
"kind": "patch",
"published_at": "2026-05-15T15:02:17Z"
},
{
"tag": "v0.6.0",
"kind": "minor",
"published_at": "2026-05-15T13:50:00Z"
},
{
"tag": "v0.5.0",
"kind": "minor",
"published_at": "2026-05-14T14:44:48Z"
},
{
"tag": "v0.4.0",
"kind": "minor",
"published_at": "2026-04-30T19:15:41Z"
},
{
"tag": "v0.3.0",
"kind": "minor",
"published_at": "2026-04-27T12:18:20Z"
},
{
"tag": "v0.2.2",
"kind": "patch",
"published_at": "2026-04-09T07:42:57Z"
},
{
"tag": "v0.2.1",
"kind": "patch",
"published_at": "2026-04-08T17:19:51Z"
},
{
"tag": "v0.2.0",
"kind": "minor",
"published_at": "2026-04-08T15:21:11Z"
},
{
"tag": "v0.1.9",
"kind": "patch",
"published_at": "2026-04-08T11:10:52Z"
},
{
"tag": "v0.1.8",
"kind": "patch",
"published_at": "2026-04-08T10:43:31Z"
},
{
"tag": "v0.1.7",
"kind": "patch",
"published_at": "2026-04-07T15:29:49Z"
},
{
"tag": "v0.1.6",
"kind": "patch",
"published_at": "2026-04-07T14:55:15Z"
},
{
"tag": "v0.1.5",
"kind": "patch",
"published_at": "2026-04-07T14:07:13Z"
},
{
"tag": "v0.1.4",
"kind": "patch",
"published_at": "2026-04-07T13:52:22Z"
},
{
"tag": "v0.1.3",
"kind": "patch",
"published_at": "2026-04-07T11:03:58Z"
},
{
"tag": "v0.1.2",
"kind": "patch",
"published_at": "2026-04-07T10:00:39Z"
},
{
"tag": "v0.1.1",
"kind": "patch",
"published_at": "2026-04-07T08:34:53Z"
},
{
"tag": "v0.1.0",
"kind": "minor",
"published_at": "2026-04-07T07:31:51Z"
}
],
"recent_commits": [
{
"oid": "a7f1f1c671940a2a008a0de128c8306bb1582b1e",
"body": "* chore(docs): bump Blume to 1.1.3\n\n* chore: override fast-uri to 3.1.4 for bun audit\n\nBlume 1.1.3 pulls ajv → fast-uri@3.1.3 (GHSA-v2hh-gcrm-f6hx, high). Pin the patched 3.1.4 release so CI audit can pass.",
"is_bot": false,
"headline": "chore(docs): bump Blume to 1.1.3 (#213)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-07-22T16:18:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bada9196dfac83045bed43612f1b36d8592af88c",
"body": "Keep the marketing footer off content pages by dropping it from the Blume layout registry.",
"is_bot": false,
"headline": "docs: render site footer only on the homepage (#207)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-07-20T12:53:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4595ccf2505b85ce853b7dad121a733ce2d7ca4f",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: version packages (#206)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-20T10:28:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fd625cdeb5ab0dada0cdf2ff5f3940f2c03071c1",
"body": "workflows is a PAT OAuth scope, not a workflow permissions key — GitHub rejects the file before Release can run.",
"is_bot": false,
"headline": "fix(release): drop invalid workflows permission from GITHUB_TOKEN (#205)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-07-20T10:27:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1359b49f95b21ef1bd3cb8b64c649634f0c11756",
"body": "Keep \"Query your codebase.\" in the title only; align site, Hero, and package.json on the capacity pitch.",
"is_bot": false,
"headline": "docs: stop repeating brand one-liner in OG and npm descriptions (#204)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-07-20T10:22:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "95b350f962a32b3f762e79fd5d4d46b33ee66957",
"body": null,
"is_bot": false,
"headline": "docs(release): slim workflows permission comment",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-07-20T10:04:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a7af7fc899f83b63a8b709f11fa128537341f8ae",
"body": "GITHUB_TOKEN without workflows permission was rejected when pushing the\npost-publish tag after 0.11.3 shipped to npm.",
"is_bot": false,
"headline": "fix(release): grant workflows write so changeset tag push succeeds",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-07-20T10:03:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09efd9d34ccd88f7c6bc9a9ed22c518b0ffeca3e",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 7.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Commits](https://github.com/actions/checkout/compare/v4...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n dependency-version: '7'\n depen\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps): bump actions/checkout from 4 to 7 (#195)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-20T09:56:11Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ed01ec656319d092dd333402b8a41406d3484e38",
"body": "Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/v3...v4)\n\n-\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps): bump github/codeql-action from 3 to 4 (#196)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-20T09:56:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "20b3f55b99cc5df5cf05abcc8a3317b5acd18bd1",
"body": "Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifac\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps): bump actions/upload-artifact from 4 to 7 (#197)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-20T09:56:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b4a85479e41f0a9dda2985f29859e6ffb321d51f",
"body": "Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 7.\n- [Release notes](https://github.com/actions/setup-node/releases)\n- [Commits](https://github.com/actions/setup-node/compare/v4...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-node\n dependency-version: '\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps): bump actions/setup-node from 4 to 7 (#198)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-20T09:55:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f67ce82475e5e47f4b12d52c4bda388699c894bd",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: version packages (#203)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-20T09:55:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c629c55ec2199ea4dc10e51d66c50520b954d866",
"body": "* feat(docs): ship Blume public docs site at /codemap\n\nAdd apps/docs (guides, recipes, concepts, reference + curated roadmap),\nTypeDoc API pipeline, CI/deploy workflows, and docs-voice agent skills.\n\n* docs: retire docs-site plan after public site ships\n\nDelete + lift content boundary into docs/READ\n[…]\n point Why / When to skip at it.\n\n* docs: address CodeRabbit nits on config guide and validate wrapper\n\nDocument root/databasePath knobs; fail fast on spawn errors and 120s timeout for blume validate.",
"is_bot": false,
"headline": "feat(docs): public site (#202)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-07-20T09:53:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e17d716b59b9a5ca7ce9fad8c06e8d98823c6e13",
"body": "Release publish failed in worker-pool.dist.test.ts (node dist/index.mjs\n--full exited 1) because bun install built better-sqlite3's native addon\nagainst the runner's default Node ABI, then setup-node switched to Node\n24 for trusted publishing → ERR_DLOPEN_FAILED (NODE_MODULE_VERSION 141\nvs 137). Reo\n[…]\ntest:golden having indexed fixtures/minimal, but check runs\ntest:scripts before test:golden, so a fresh repo hit \"no such table:\nsymbols\". Case 1 now indexes via a shared indexFixtureMinimal() helper.",
"is_bot": false,
"headline": "fix(release): pin Node 24 before install so better-sqlite3 ABI matches",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-07-07T09:51:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8f7f4414bddf924e00267d6b96e994ba28df6358",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: version packages (#188)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-07T09:33:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cdacb91643bd97fee54cccd83aea2e4dde98c02b",
"body": "* chore(deps): bump packages and preserve agents init note styling\n\nRefresh runtime and toolchain deps to latest, and keep dim note() text\nin agents init after @clack/prompts 1.6 changed the default formatter.\n\n* harden: repin lockfile, slim changeset, guard dimNote wiring\n\nRe-sync bun.lock workspac\n[…]\nared bun engine floor was >=1.0.0 — tighten to match the actual\nruntime requirement. Node floor (^20.19.0) already covers styleText\n(added in 20.12.0).\n\nCodeRabbit review on #186.\n\n* rebuild lock file",
"is_bot": false,
"headline": "chore(deps): bump packages and preserve agents init note styling (#186)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-07-07T09:32:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4afb0e2c76263cdf9b7fe63c3d67b6c93f9b2ace",
"body": "* adopt persist repo practices: release, CI, .agents\n\nRelease: npm trusted publishing (OIDC, no NPM_TOKEN) + Sigstore provenance.\nCI: least-priv perms, SHA-pinned checkout + persist-credentials:false, check-pack job, audit blocks on high/critical, dependabot.\nTooling: check:pack (attw+publint), :cha\n[…]\nrts must\nresolve against exports (prose depth + no-internals defer to\nauthoring-discipline § PROSE + existing items, no duplication).\n\n* add changeset for trusted publishing + provenance + sideEffects",
"is_bot": false,
"headline": "Adopt persist repo practices: release, CI, .agents (#187)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-07-07T08:22:52Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "aaa5b3a2eb05554a3039d9672226b6effbfbcda0",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: version packages (#185)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-06-16T16:49:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3aff23766db67e8e171ea7d8ef1183f4a9631f76",
"body": "Refresh runtime and toolchain deps to latest, add hono/js-yaml overrides\nso bun audit is clean, and include a patch changeset.",
"is_bot": false,
"headline": "chore(deps): bump packages and pin transitive audit fixes",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-16T16:47:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2eab3afbdd7109b15b8a1f885f65ecdd35264c21",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: version packages (#171)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-06-11T10:41:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fb73e0d272a0d5b93cd143f61054a7b927b4332b",
"body": "* feat: tiered show lookup fast paths and covering index\n\nRoute lone name:Token queries to equality lookup; add\nidx_symbols_name_covering; document fast vs slow tiers in CLI/MCP help.\n\n* harden: lift tiered lookup docs across consumer surfaces\n\nFix roadmap anchor, glossary/show recipe cross-refs, mc\n[…]\n: lint-staged test globs and verify-after-each-step parity\n\nAdd *.test.tsx glob for co-staged pairs; align rule table and Rule 4 with\nlint-staged.config.js (scripts/**/*.test.mjs, relatedTests scope).",
"is_bot": false,
"headline": "feat: tiered show/snippet lookup fast paths (#184)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-11T09:44:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b509e4c808a3652604357dcea64a34833de0f74f",
"body": "* feat: add map_id and codebase_map to context bootstrap\n\nAgents get a hash-stable routing card on context (CLI/MCP/HTTP) plus MCP\ninitialize instructions appendix; opt out via --no-codebase-map or compact.\n\n* harden: parity and watch-ordering for codebase map bootstrap\n\nAlign skill shard, MCP tool \n[…]\nstructions.\n\n* harden: test resolveMcpInitializeInstructions override path\n\nExtract instructions resolver from runMcpServer so CodeRabbit fix has\nregression coverage without stdio integration harness.",
"is_bot": false,
"headline": "feat: codebase map bootstrap (map_id + routing hints) (#183)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-11T09:16:06Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e4f608738eecfe280a7e070ce5ea75c855f30a94",
"body": "Fact-checked against context-engine, show-search-mode, and db indexes.\nRoadmap links both backlog items to executable tracer-bullet slices.",
"is_bot": false,
"headline": "docs(plans): add agent-ready bootstrap map and tiered lookup plans",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-11T08:17:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8bd841b9d27d7f3fbe2d49f2144f53f862c3ceb3",
"body": "Add schema rebuild warnings on minor bumps and remove maintainer-only\nwording from coverage-confirmed-dead consumer changelog body.",
"is_bot": false,
"headline": "chore(changeset): audit pending release notes for accuracy",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-11T08:16:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "abec46c9f7a32325a3e5d9ad6dbbadcf2e954347",
"body": "Lift shipped agent milestones to agents.md, prune roadmap [x] backlog,\nand align docs with code (apply conflict count, SCHEMA_VERSION 40,\nbenchmark fan-out pairing, marketplace/substrate plan metadata).",
"is_bot": false,
"headline": "harden: doc fact-check fixes and roadmap prune",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-11T06:51:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bd0b094c637117627de80ed6fdc636b9bc7ada1e",
"body": "Delete orchestrator plan and check off roadmap now that #180–#182 are shipped.",
"is_bot": false,
"headline": "docs: close security-hardening program after PR3 merge",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-11T06:32:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3568c5f3e0f83f05ca0aaf9eebd7d0f0b69bb4cf",
"body": "* feat(runtime): guard root switches and isolate test global state\n\nCodify one-root-per-process: initCodemap/configureResolver throw on mid-process\nroot changes except audit worktree reindex (runtime-swap bracket). Validate user\nconfig at loadUserConfig; roll beforeEach/afterEach teardown across ini\n[…]\n consumer-clean\ndocs/changeset; delete plan and repoint orchestrator + roadmap.\n\n* harden: cover loadUserConfig invalid .ts paths at load\n\n* chore(changeset): patch bump for runtime root guard tighten",
"is_bot": false,
"headline": "feat(runtime): guard root switches and isolate test global state (#182)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-11T06:25:17Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "aae172f40bd2afd214d93e8d2e9941b0b1471312",
"body": "* feat(impact): scope homonym symbols with inPath and per-file walks\n\nAdd --in / MCP in for defining-file disambiguation; homonym call graphs\nunion per file instead of merging by name. Docs, changeset, and tests.\n\n* harden: impact homonym parity, plan retirement, and inPath edge case\n\nAlign consumer surfaces, delete shipped plan, fix skipped_scope on unknown\nsymbols with inPath, and add homonym/MCP regression tests.\n\n* docs(glossary): add skipped_backends to impact envelope",
"is_bot": false,
"headline": "feat(impact): scope homonym symbols with inPath (#181)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-11T06:04:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a5caca8e5ba5d08206fe68228e0d9dff8a17e014",
"body": "* feat(security): harden query, serve, and validate read surfaces\n\nClose the formatted-query query_only gap, require --token on non-loopback\nserve binds, and reject validate paths that escape the project root or\nsymlink outside it.\n\n* harden: read-surface PR parity, bind policy, and ship docs\n\nAdd c\n[…]\nwave1 plan retirement\n\nAlign validate reason docs across consumer surfaces, extend formatted-query\nDML coverage to diff formats, retire security-hardening-wave1 plan with\norchestrator/roadmap updates.",
"is_bot": false,
"headline": "feat(security): harden query, serve, and validate read surfaces (#180)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-11T05:40:25Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8595173216db236050a363fcffc98d9c60471c44",
"body": "…179)\n\n* feat(churn): git churn ingest and churn-complexity-hotspots recipe\n\nAdd file_churn substrate with full/incremental/idle refresh on every index pass, codemap ingest-churn for golden seeds, and a refactor-priority recipe ranked by churn × complexity with perf-baseline churn_ms gating.\n\n* hard\n[…]\n replaceFileChurn/mergeFileChurnForPaths in transactions; validate churn_trend on JSON ingest; align README, recipe, agent-content, and CLI help for churn.file override and hotspots alias distinction.",
"is_bot": false,
"headline": "feat(churn): git churn ingest and churn-complexity-hotspots recipe (#…",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-10T15:06:34Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "36106ff66b691bfbe682da5e5cb29a1779e24a1e",
"body": "* feat(duplicates): body_hash structural dupes + harden pass\n\nAdd symbols.body_hash (canonical body AST for function-shaped symbols),\nSCHEMA_VERSION 39, duplicates recipe, golden scenario, and agent rule row.\nRetire ast-hash-duplication plan into architecture/glossary/golden-queries.\n\n* harden: null\n[…]\nion.body-hash agent-eval probe; fix spike-crap tier count\nafter fixture symbols; add duplicates-recipe-scope regression tests;\nsetter/nullish-scope unit tests; consumer doc caveats (LIMIT, async/gen).",
"is_bot": false,
"headline": "feat(duplicates): body_hash structural duplication detection (#178)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-10T13:12:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bb8bae9492c879fa8d7b82ef726b9fe82b8705d6",
"body": "* feat(audit): add findingKey helper for delta attribution (Plan 4 slice 4.1)\n\nProject rows to requiredColumns and JSON.stringify for stable keys aligned with computeDelta / diffRows identity; unit tests cover all v1 deltas.\n\n* feat(audit): attribution on --base added rows (Plan 4)\n\nTag ref-sourced \n[…]\nskill): sharpen harden-pr Task spawning and finding schema\n\nRequire parallel Task subagents per pass; add prompt template, JSON\nfinding shape, merge/dedupe rules, and explicit anti-inline-review rule.",
"is_bot": false,
"headline": "feat(audit): attribution on --base added rows (#177)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-10T10:54:52Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "16687a0d0bf403d2278d763c355575e161142eaa",
"body": "* feat(recipes): add coverage-confirmed-dead recipe (Plan 3 slice 3.1)\n\nFork untested-and-dead with confidence/reason/caller_count columns — high when ingested coverage is 0%, medium when unmeasured; honors shared suppressions.\n\n* test(golden): coverage-confirmed-dead scenarios with preSetup clear-c\n[…]\nge-deletion-confidence plan and lift contract\n\nDelete shipped plan doc, mark roadmap item done, slim agent-enrichment-wave to plan 4 only, cross-link untested-and-dead, refresh fixture README goldens.",
"is_bot": false,
"headline": "feat(recipes): coverage-confirmed-dead with confidence columns (#176)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-10T10:12:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "af86d100f3c6f107b575589a9a244728ea53e0b6",
"body": "* feat(recipes): high-crap-score with graph-estimated coverage (plan 2)\n\nSpike locks 85/40/0% reachability tiers on fixtures/minimal; ships\nhigh-crap-score recipe (measured override when coverage ingested),\ngolden + script tests, and high-complexity-untested cross-link.\n\n* harden: CRAP consumer surf\n[…]\nfor PR #175\n\nTighten unresolved_import_blind_spot to name-only matching, extend changeset/CAPABILITIES/fixture README/agent skill, add labyrinth measured-vs-estimated test, and refresh README goldens.",
"is_bot": false,
"headline": "feat(recipes): high-crap-score with graph-estimated coverage (#175)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-10T09:50:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a11242e887c76bc439bb5fb09cc0d9589319e584",
"body": "* feat(recipes): evidence columns on boundary-violations (slice 1.1)\n\nAdd reason and evidence_json to boundary-violations SQL; golden + golden-queries\ncontract; agent-enrichment-wave tracer doc for plans 1-4.\n\n* feat(recipes): caller evidence on deprecated-symbols (slice 1.2)\n\nreason has_callers/no_\n[…]\njson('true') for list-cap markers; exercise >3 caller branch via\nProductCard now() fixture; fix stale unimported-exports action text;\nadd architecture + skill evidence lines; refresh affected goldens.",
"is_bot": false,
"headline": "feat(recipes): evidence chains on high-judgment recipe rows (#174)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-10T09:29:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d4982c49fd7a96a5185ed09bccca8caac0911c77",
"body": "Add `symbols.cognitive_complexity` (Sonar-inspired, SCHEMA 38) with class-method coverage, recipe `high-cognitive-complexity` (default `min_score=15`), and `cognitive_complexity` column on `high-complexity-untested` rows (cyclomatic gate unchanged).\n\nIncludes else-if parent-nesting fix, harden pass (minor changeset, tests, golden), and harden-pr skill commits on branch.",
"is_bot": false,
"headline": "feat(index): Sonar cognitive complexity column and recipes",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T16:20:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cf7df2fd94a855f0f48bc8ce509836e7f3e6d8d2",
"body": "* feat(query): add CodeClimate and badge CI output formats.\n\nGitLab Code Quality ingestion and README/CI issue-count summaries are output modes on existing recipe rows — flat minor severity and codemap-badge/v1 per plan F.7/F.8.\n\n* chore(changeset): use patch bump for pre-v1 additive formats.\n\n* fix\n[…]\nerprint line with emitted begin + test gaps\n\nFingerprint hashes use the same line as location.lines.begin (default 1).\nAdd MCP/CLI/handler regression tests for warnings, combo guards, and happy paths.",
"is_bot": false,
"headline": "feat(query): CodeClimate and badge CI output formats (#172)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T13:35:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e74410cf2fd0095cca83ca501b8d69786fc17b56",
"body": "* feat(mcp): add ToolAnnotations hints on tools/list and GET /tools\n\nMCP clients can distinguish read-only query tools from destructive apply\ntools via readOnlyHint/destructiveHint; HTTP catalog exposes the same fields.\n\n* fix(mcp): address PR review — SDK guard, tests, docs lift\n\n- M.6: probe ToolA\n[…]\noadmap item\n- Document index-mutator readOnlyHint: false in consumer surfaces\n\n* chore: add changeset for MCP ToolAnnotations release notes\n\n* test(mcp): cover M.6 guard false path for ToolAnnotations",
"is_bot": false,
"headline": "feat(mcp): ToolAnnotations hints on tools/list and GET /tools (#170)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T13:02:06Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2bc86e1fc4ee145c6beea56988d223df437d1af4",
"body": "Repair broken anchors, add real heading targets for session/context\nwiring, correct packaging subtree count, and tighten benchmark CI\nwording after the reference-doc fact-check.",
"is_bot": false,
"headline": "docs: fix cross-refs and stale prose from top-level audit",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T12:37:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b98fc9e53548026ff36529c36ba0064956eb3d69",
"body": "Repair broken Tier 11 anchor, tier-status contradictions, dangling LSP\npointer, and stale perf-plan tier citation after the plans lifecycle trim.",
"is_bot": false,
"headline": "docs: fix plan-sweep cross-refs flagged in review",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T12:08:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "22d2ea0483d9466c18d5dc34e8700c279b4e4c18",
"body": "Collapse substrate-extraction shipped tiers (1–6, partial 9–12) to stubs\nwith canonical pointers; slim github-marketplace (Slice 5 runbook) and\nperf-triangulation (Phase 3 open work). Fix audit-worktree API name,\nfts --no-fts claim, graph-CRAP motivator, apply-write-safety dupe table.",
"is_bot": false,
"headline": "docs(plans): lifecycle sweep — slim shipped inventory, fix fact errors",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T12:06:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe4209f20f45b8b896736ae6df28aa29b3d51e1a",
"body": "Glossary § fan-in now points at C.9 closed-dead-subgraph caveat.\naudit-delta-attribution plan links audit verdict to Core substrate\nsection (not Recipe & audit enrichment).",
"is_bot": false,
"headline": "docs: fan-in caveat + fix audit-verdict roadmap anchors",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T12:01:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "684ce51382463ad87bcad5e7086a3ebccf5a729a",
"body": "Lift dual-agent findings, apply-path rejected alternatives, and backlog\nitems into benchmark/architecture/roadmap; retarget cross-refs; delete\nthree adopted research notes per docs-governance Rule 8.",
"is_bot": false,
"headline": "docs: close research sweep — lift decisions, delete adopted archives",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T11:50:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "849a121a20f2af07de40220b2ec8160a0b0df237",
"body": "bun run clean now wipes local index state under .codemap/ for a true fresh tree; .env and docs/research/scratch/ stay preserved.",
"is_bot": false,
"headline": "fix(clean): remove .codemap from git clean exclusions",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T11:35:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "76aed6ef67ab3c9a96010e0962c1927f4feb3b88",
"body": "Exclude local maintainer drafts alongside .env and .codemap so bun run clean does not delete gitignored scratch files.",
"is_bot": false,
"headline": "fix(clean): preserve docs/research/scratch from git clean -xdf",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T11:32:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f35a15fcc4c22946018d1fbf4c3cbbaea0d8ed52",
"body": "Maintainers can keep uncommitted drafts under docs/research/scratch/; only .gitkeep is tracked. Documented in docs/README.md alongside tracked research/ evaluations.",
"is_bot": false,
"headline": "docs: add gitignored research/scratch for local working notes",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T11:31:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1ab9607edaabf8d5bbb9fd13efa038ff8a04d332",
"body": "Add roadmap entries and standalone plan files for audit attribution, evidence chains, apply write-safety, churn hotspots, cognitive complexity, AST-hash dupes, CRAP/coverage recipes, CI output formats, MCP annotations, and shell installer — plus agent-start sections on C.9, LSP, and Marketplace Action plans.",
"is_bot": false,
"headline": "docs: expand backlog with agent-ready implementation plans",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T11:26:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "22588beae179d0479d3cb750927713c6e71625b9",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: version packages (#168)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-06-05T08:26:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1632bdd5cff7560bf6d437f2c6bd940996d20bc3",
"body": "* chore: bump deps and adopt Socket Firewall Free in CI\n\nRefresh toolchain and parser packages to latest, and route CI dependency\ninstalls through Socket Firewall Free so malicious packages are blocked\nbefore they reach runners.\n\n* chore: add changeset for dependency refresh",
"is_bot": false,
"headline": "chore: bump deps and adopt Socket Firewall Free in CI (#169)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T07:59:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "231d6cc32d77fa94b69ded7394457dfc558060c8",
"body": "* feat(mcp): add ingest_coverage and query baseline parity\n\nClose the last two agent-relevant transport gaps: MCP/HTTP can load coverage artifacts and diff queries against saved baselines in one call, matching CLI ingest-coverage and query --baseline.\n\n* fix(mcp): address PR #167 review cycles 1–2\n\n\n[…]\nPR #167 review cycle 5 glossary gaps\n\nCross-ref MCP/HTTP baseline on query baseline entry, document ingest-coverage-run orchestration layer, and note baseline format incompatibilities in cmd-mcp help.",
"is_bot": false,
"headline": "feat(mcp): transport parity — ingest_coverage + query baseline (#167)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T07:52:54Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4bfb06732d5ebdc607bdf73b0460cd25cc926d38",
"body": "* feat(cli): add codemap rename alias for homonym-safe renames\n\n`define_in` on rename-preview shipped in #165; this adds the thin\n`codemap rename` → `apply rename-preview` alias with positional\nergonomics and plan doc for the scoped-rename slice.\n\n* fix(cli): preserve missing --params operand in ren\n[…]\nreserves\ndry-run semantics end-to-end.\n\n* docs(cli): use generic paths in rename alias examples\n\nReplace dogfood bench fixture paths in README and rename --help with\nconsumer-facing placeholder paths.",
"is_bot": false,
"headline": "feat(cli): codemap rename alias for homonym-safe renames (#166)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-05T07:45:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2e1e5e0b7bfc37f680d54b0ef4c2ee02e53f0222",
"body": "Remove substrate-apply-utilization, scoped-rename-define-in, and\nin-repo-test-bench (Phases 1–3 shipped). Lift pointers to architecture,\ntesting-coverage, synthesis §7, and roadmap.",
"is_bot": false,
"headline": "docs: delete shipped plans and retarget cross-refs",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-04T19:14:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2fe5e5f74801a3e3b42cfe0bc8ac6f10430b2dff",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: version packages (#163)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-06-04T19:08:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7b0406a9eae183d4d3220206a2a6296dc7e9e938",
"body": null,
"is_bot": false,
"headline": "chore: add changeset for apply-engine release",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-04T19:07:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b73f0df647af794e210c9afd5d8e36b28266bcfd",
"body": "* feat(apply): ship apply-engine steps 2–12 in one slice\n\nExtend codemap apply from rename-preview-only to a full substrate-shaped\nfix executor: three diff-shape recipes, rename-preview call/re-export CTEs,\nauto_fixable gating with --force, agent row/diff inputs, fixpoint loop,\noptional git commit, \n[…]\npe find-symbol-references apply hint with define_in\n\nC.6 apply-rename-preview command now passes define_in={{file_path}} so\nagents following read→apply after bindings-precise lookup stay homonym-safe.",
"is_bot": false,
"headline": "feat(apply): ship apply-engine steps 2–12 (#165)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-04T19:04:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8c7064a946df4108d940d74d182ac5f9430a8178",
"body": "* feat(index): callback dispatch synthesis tracer (SCHEMA 37)\n\nAdd calls.provenance and optional JSX parent→child heuristic edges via\nsynthesis.heuristicCalls (default off). Filter call-path to ast-only;\nship calls-including-heuristic recipe.\n\n* fix(index): Moat-A provenance filters and resolve orde\n[…]\nallback-dispatch-synthesis plan after JSX tracer\n\nDelete shipped plan; roadmap marks #164 done. EventEmitter/setState heuristics\nexplicitly out of scope for now. PR title lesson in .agents/lessons.md.",
"is_bot": false,
"headline": "feat(index): callback dispatch synthesis (#164)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-04T16:09:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6e50d77342938553e1d6d9c2800711950b92ab36",
"body": "* feat(index): two-phase call resolution with unresolved_calls staging\n\nAdd SCHEMA_VERSION 36, call-resolver pass after bindings, incremental scoped\nre-resolve, and unresolved-call-sites / call-resolution-stats recipes.\n\n* fix(index): tighten call-resolve scope and meta semantics\n\nUse expandHeritage\n[…]\n points at shipped docs.\n\n* docs(test): align substrate matrix with coverage map\n\nAdd calls/coverage to SUBSTRATE_SCENARIO_BY_TABLE; fix glossary\narchitecture anchor; clarify CONTRIBUTING guard scope.",
"is_bot": false,
"headline": "feat(index): unresolved calls staging (SCHEMA 36) (#162)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-06-04T15:36:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1d9c09e7868bb2b2585503c9703219f69d792213",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: version packages (#161)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-28T10:24:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b1e3d5841cccf90003105bb57984475549565557",
"body": "* feat(cli): add MCP parity verbs for shell-only consumers\n\nWire CLI commands that call the same tool-handlers and resource builders\nas MCP/HTTP so consumers without a transport still get identical JSON.\n\n* fix(cli): whitelist parity verbs and tighten query batch validation\n\nvalidateIndexModeArgs bl\n[…]\narchitecture and glossary with handleContext and CLI --include-snippets.\n\n* chore(changeset): bump CLI parity release to patch\n\nAlign with repo convention: additive CLI twins ship as patch, not minor.",
"is_bot": false,
"headline": "feat(cli): MCP parity verbs for shell-only consumers (#160)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-28T10:22:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "68799eff29d04fb7fc7dc0f99b1fdfe70ead95ce",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: version packages (#159)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-27T16:54:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e8ea64077028951b7c9d024e7f81d3f16de07fc5",
"body": "…(#158)\n\nExpose --targets and --link-mode on codemap agents init for CI and sandboxes.\nCombine with --mcp to write MCP configs only for selected integrations.\nSide-effect paths compose targets with --git-hooks or --mcp on existing .agents/\nwithout --force.",
"is_bot": false,
"headline": "feat(agents): add --targets and --link-mode for non-interactive init …",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-27T16:53:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "33cd88c56845c4bedaa6b597672453e482327eda",
"body": "Replace a named external benchmark row with the existing large-app\nshape label used elsewhere in the same document.",
"is_bot": false,
"headline": "docs(plans): anonymize large-app fixture name in substrate plan",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-27T16:50:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b60d62b39058f480ae77076f3f5cda728f179e22",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: version packages (#157)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-27T16:27:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ae4a143ae0301f8750333feb5f386ff3479202a6",
"body": "* feat(agents): inject workspace root for VS Code MCP init\n\nVS Code / Copilot now get `--root ${workspaceFolder}` via agents init --mcp,\nmatching Cursor so Copilot indexes the open workspace when spawn cwd differs.\n\n* test(agents): deepen VS Code MCP workspace-root coverage\n\nAddress PR review: regis\n[…]\nrget flag.\n\n* docs(plans): retire vscode MCP workspace-root plan\n\nLift migration + --root rationale into agents.md; delete shipped plan per\ndocs-governance (delete + lift, no slim-and-keep in plans/).",
"is_bot": false,
"headline": "feat(agents): inject workspace root for VS Code MCP init (#156)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-27T16:26:17Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "946816db1c4817775c3f883798b688fc465cc4dd",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: version packages (#150)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-27T15:20:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "450ca2ec29765f9ebb4f83463171591873958364",
"body": "…(#155)\n\n* feat(agents): safer init re-runs for mirrors, markers, and MCP merge\n\nInit must not clobber consumer-owned files: bundled-only IDE mirrors,\ncodemap-init:managed provenance before --force overwrite, and reject\ninvalid MCP map shapes instead of resetting them.\n\n* fix(agents): address PR rev\n[…]\nror provenance docs/changeset; deepen e2e tests\n\nDocument legacy mirror heuristic and symlink copy-mode marker behavior;\nextend dummy-corpus and unit coverage for legacy migration and symlink refusal.",
"is_bot": false,
"headline": "feat(agents): safer init re-runs for mirrors, markers, and MCP merge …",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-27T15:17:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1bcca3a64ed4d1034358fc4f9c2505cf71bae45d",
"body": "* feat(agents): PM-aware MCP spawn via agents init --mcp\n\nResolve codemap CLI invocation from the project package manager so MCP\nconfig works when codemap is a devDependency, not only on PATH.\n\n* fix(action): resolve WORKING_DIRECTORY from GITHUB_WORKSPACE\n\nAddress PR review: absolute project root f\n[…]\nested shell helper, broaden resolver/sync/e2e coverage, map detector yarn+berry to yarn@berry for dlx, and align consumer docs/CLI copy.\n\n* docs(agents): fix dlx vs local spawn examples in MCP section",
"is_bot": false,
"headline": "feat(agents): PM-aware MCP spawn via agents init --mcp (#154)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-27T14:44:40Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "535986fd47292cdae22abde67542f93d54cd963e",
"body": "Release workflow failed because the changeset referenced \"codemap\"\ninstead of \"@stainless-code/codemap\". Also patch (not minor) per\npre-v1 bump policy — no schema break.",
"is_bot": false,
"headline": "fix(changeset): use scoped package name for session lifecycle",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-27T13:31:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "048278bca5e13dbcf8f130e082a190ebcd574046",
"body": "* feat(mcp): session lifecycle hygiene without idle timeout\n\nAdd stdio disconnect detection and refcount-gated watcher sessions for\nmcp/serve; document explicit no-MCP-idle-timeout policy in architecture\nand agent docs.\n\n* fix(session-lifecycle): harden acquire/stop refcount races\n\nRoll back client \n[…]\ng before checking handle, so\nforceStop during HTTP first-request prime cannot orphan chokidar.\nAlso observe fire-and-forget release/stop rejections and harden\nthe parent-pid spy test with try/finally.",
"is_bot": false,
"headline": "feat(mcp): session lifecycle hygiene (#153)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-27T13:28:53Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "150c6c62e9a304e72deac5dc1b5610174cf059bb",
"body": "* feat(output-budget): adaptive caps for trace, explore, and node\n\nScale snippet char budgets and explore row limits from indexed file\ncount when callers omit budget_chars; explicit overrides unchanged.\n\n* fix(output-budget): address PR review — integration tests and single COUNT\n\nAdd composer-level\n[…]\nlit-budget tests and MCP smoke\n\nRemove unused resolveEffectiveExploreRowLimit export, add mid-tier and\nsplit-budget integration tests, MCP explore/node transport smoke, and\nmcp-instructions tier docs.",
"is_bot": false,
"headline": "feat(output-budget): adaptive caps for trace, explore, and node (#152)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-27T12:30:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e71765247b2227cb45442674932869078981a029",
"body": "* feat(context): add start_here session bootstrap shortcuts\n\nNon-compact context/MCP/HTTP envelopes now include intent-ranked\nquery_recipe cards and top hub files with export signatures so one\nbootstrap call replaces a common show → explore chain.\n\n* feat(context): complete rich context composer (sl\n[…]\n coverage.\n\n* test(context): prove hub split and marker_limit tiers\n\nAdd multi-hub fixture, large-repo marker cap test, MCP compact/intent\nsmoke, marker_limit unit assertions, and skill doc alignment.",
"is_bot": false,
"headline": "feat(context): rich context composer (#151)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-27T11:25:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "41a418405b182a3f98cce22cd4ce8153969d1e3f",
"body": "* feat(context): add index_freshness trust metadata (slice 1)\n\nSurface commit drift, watcher pending sync, and disk-ahead signals on\ncodemap context / MCP context so agents know when structural queries may\nlag the checkout. Watcher exposes debouncer state; slice 2 will extend\nMCP/HTTP tool responses\n[…]\nr batches\n\nTrack queued inFlight batches so pending_sync does not false-negative\nbetween serialized reindexes; always emit boot freshness warning after\nwatch prime settles, including on prime failure.",
"is_bot": false,
"headline": "feat: index freshness trust bundle (#149)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-27T10:51:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "df31144081983f0274196ab39ed3d2db5f455506",
"body": "Capture adoption ideas from competitive review as trigger-gated backlog\nsections, and codify that incremental indexing must keep all recipe-visible\ntables consistent in one pass — no lazy secondary surfaces.",
"is_bot": false,
"headline": "docs(roadmap): add agent-session backlog and split-brain floor",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-27T10:22:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e040d0f8de3aca31a25fe716b3f50ce8dcea7a0c",
"body": "* feat(agent-eval): add log session capture helper\n\nGenerate entries-style MCP-on/off transcripts from live handlers and\nthe traditional probe for compare-live-logs. Wire AGENT_EVAL_CAPTURE=1\ninto run-arms.sh; document in benchmark.md and research note.\n\n* fix(agent-eval): address log capture review\n[…]\nonor AGENT_EVAL_PROBES/SESSION_DIR/SKIP_INDEX, run golden setup,\nvalidate probe goldenIds, and align env empty-string semantics with\nrun-arms.sh. Add helper tests; clarify benchmark and research docs.",
"is_bot": false,
"headline": "feat(agent-eval): add log session capture helper (#148)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-26T18:16:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "92c55d35c19ed1a22f3c10462cabee2a80992554",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: version packages",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-26T18:05:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7afc9eba451720ae463dd0567eef71ac4e500bda",
"body": "* fix(worker-pool): clear parse timeouts so --full exits promptly\n\nPromise.race with uncancellable delay() left 120s timers on the event\nloop after workers finished. Replace with explicit setTimeout +\nclearTimeout on worker response and dispose.\n\n* test(worker-pool): subprocess exit guard for timer \n[…]\nfast.\n\n* test(worker-pool): address review nits before merge\n\nStop exporting INLINE_PARSE_MAX; mirror the threshold in tests. Add\nnode dist --full subprocess exit regression (skips when dist/ absent).",
"is_bot": false,
"headline": "fix(worker-pool): clear parse timeouts so --full exits promptly (#146)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-26T17:54:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "01d49318324dc50bb9b6601a7810ef801ad248af",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: version packages (#125)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-26T17:03:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9fa1e9d54420aef044c97a6e157c46be4ac10e17",
"body": "Drop carets in package.json for reproducible installs; refresh bun.lock.\nDev tooling: oxfmt 0.52, oxlint 1.67, ts-native-preview 20260526.",
"is_bot": false,
"headline": "chore(deps): pin exact versions and bump oxfmt/oxlint",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-26T13:53:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0323a1f75c90a960622354ba813c8bf5c8f1af8a",
"body": "…r (#145)\n\n* docs: lifecycle sweep — retire P1 agent-surface plans, fact-check references\n\nP1 agent-surface plans are complete; lift status to roadmap and fix stale\nschema, MCP, validate, and index-path claims across docs and agent templates.\n\n* docs: second sweep — type_heritage, MCP metadata, inde\n[…]\n* docs: address CodeRabbit PR #145 — MCP wiring, anchor, JSON example\n\nFact-checked 4/5 bot comments; push back on false-positive GitHub\ncapitalization (Actions expression github.base_ref is correct).",
"is_bot": false,
"headline": "docs: fact-check sweep — align docs and CLI help with shipped behavio…",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-26T13:49:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1dd422d26d7949054a144eafdc31b7665d326fa5",
"body": "…w (#144)\n\n* feat(agent-eval): live MCP arms, log comparison, and external workflow\n\nClose P1 agent-surface eval work: live mode dispatches handleQuery/query_recipe\nwith a minimal CODEMAP_MCP_TOOLS allowlist, log mode compares exported session\ntranscripts, and workflow_dispatch runs probe or live ar\n[…]\n JSON,\nlog compare empty MCP-on guard, summary on partial failure, doc fixes.\n\n* fix(agent-eval): address PR #144 review cycle 9\n\nMCP-off zero-result error parity and probe summary before log compare.",
"is_bot": false,
"headline": "feat(agent-eval): live MCP arms, log comparison, and external workflo…",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-26T12:25:13Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e475d204d1168529ffaa7963881ec5f1f89cf90c",
"body": "* fix(heritage): address PR #142 review findings (cycle 1)\n\nClass superClass generics, type-alias resolve, incremental scope expansion,\nmodule-level symbol preference, complex extends fallback, recipe dedupe;\nheritage-resolver tests + new recipe goldens; doc/glossary updates.\n\n* fix(heritage): addre\n[…]\ne)\n\nAdd persistTypeHeritageResolution unit test and run-index incremental\ntest proving scoped heritage re-resolve updates DB rows.\n\n* docs(recipes): note type kind filter on type-descendants (cycle 6)",
"is_bot": false,
"headline": "fix(heritage): PR #142 review fixes (6 cycles) (#143)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-26T10:21:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a085ec6217f261b2d451c26dc893b4e6c88be9b4",
"body": "* docs(plans): add type-heritage-substrate plan for lifting recipe limits\n\nDocuments the substrate path to replace signature parsing in type-ancestors\nand type-descendants; links from roadmap and agent-surface related plans.\n\n* docs(delivery): mark #141 merged; track type-heritage-substrate as in fl\n[…]\nAdd AST-backed type_heritage extraction, import-aware resolve pass,\nand rewire type-ancestors/type-descendants to JOIN substrate rows.\nSchema bump 34→35; heritage-qualified fixture; goldens refreshed.",
"is_bot": false,
"headline": "feat(substrate): type_heritage table and recipe rewire (#142)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-26T08:30:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bd5a1fa99feceb5d35e470f8ef63c047fde7e4b9",
"body": "* feat(recipes): add type-ancestors and type-descendants recipes\n\nShip bundled SQL for extends/implements hierarchy walks parsed from\nsymbols.signature, with minimal fixture coverage and golden-query CI.\n\n* fix(recipes): address PR review findings for type hierarchy\n\n- Scope recursive heritage walks\n[…]\n; links from roadmap and agent-surface related plans.\n\n* Revert \"docs(plans): add type-heritage-substrate plan for lifting recipe limits\"\n\nThis reverts commit 3ece39256e7029a4286ae2c2f872bfbcc2e1e758.",
"is_bot": false,
"headline": "feat(recipes): type-ancestors and type-descendants (#141)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-26T08:11:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ee9f6b240cfd7fddae5990ad54a87bad2fd7343c",
"body": "Patch changeset for oxc-parser ^0.133.0 and dev TS native preview.",
"is_bot": false,
"headline": "chore(deps): bump oxc-parser and typescript native preview",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-26T07:16:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8d515abea29cf8924817b6b157163f8aa6cda12b",
"body": "* docs: post-merge sweep after agent-eval (#139)\n\nDelete ten shipped agent-surface plans; prune roadmap [x] backlog;\nrefresh README, glossary, templates, and cross-refs to agents.md.\n\n* docs: fix broken table in callback-dispatch-synthesis plan\n\nPipe characters in L.1 split the markdown table into extra columns.\n\n* docs: address PR #140 review findings\n\nFix plan anchor slugs, MCP-only tool wording, parse-worker env lift,\nand delivery-tracker maintenance steps for delete+lift lifecycle.",
"is_bot": false,
"headline": "docs: post-merge sweep after agent-eval (#139) (#140)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-26T07:13:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a6065cadd21705862ee9a921fcf327552874a733",
"body": "* feat(agent-eval): add probe A/B harness and agent log parser (PR 9)\n\nShip dev-only scripts/agent-eval tracer bullet so local runs compare MCP-on\nquery vs glob/read/grep discovery on golden-mirrored probes, with optional\nagent transcript parsing and benchmark.md methodology docs.\n\n* docs(plans): li\n[…]\n review findings\n\nBroaden log parser tool/content coverage, align averaged deltas, guard\ntraditional regex, restore CODEMAP_ROOT, exit 1 on partial probes, and\nreuse index in run-arms.sh when present.",
"is_bot": false,
"headline": "feat(agent-eval): probe A/B harness and log parser (PR 9) (#139)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-26T06:56:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "829075cc13a4241718935c2ec724addfa9928e3b",
"body": "* feat(show): field-qualified search via --query and MCP show.query\n\nAgents can narrow symbol discovery with kind:/name:/path:/in: filters\ntranslated to parameterized SQL on symbols, with optional FTS for free\ntext and --print-sql for Moat-A transparency.\n\n* fix(show): address PR review — shared sea\n[…]\nse review findings — HTTP tests, changeset, tracker\n\nAdd HTTP show/snippet query + FTS warning tests; changeset for release\nnotes; mark roadmap/delivery tracker merge-ready; refresh PR #138 test plan.",
"is_bot": false,
"headline": "feat(show): field-qualified search (PR 7) (#138)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T17:43:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bd479d27398adec4fec255d6ca853a521fc6c4ac",
"body": "* fix(ci): re-baseline perf from slow GHA runner medians\n\nGHA ubuntu runners are bimodal (~630ms vs ~1117ms total on the same\ncommit). The May 20 baseline sat between tiers, so slow runners failed\nindex_create_ms at +31% while total_ms stayed under gate.\n\nRe-capture medians from slow-tier CI logs, r\n[…]\ny schedule\n\nSelf-index perf check is ~6 min and flakes on bimodal GHA runners.\nKeep the script + slow-tier baseline for local/scheduled drift checks;\nremove from ci-complete and branch-blocking PR CI.",
"is_bot": false,
"headline": "fix(ci): demote perf baseline from PR path to weekly schedule (#137)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T16:49:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3911abfbab19b9ff6196658188e650ba096e7c13",
"body": "Break application ↔ agents-init import cycle by moving resolveAgentsTemplateDir to a leaf module. Re-export preserved; docs + boundary verification kit added.",
"is_bot": false,
"headline": "refactor(agents): extract agents-template-path leaf module (#136)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T16:02:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c4b4b3686c5c34d686f5f128dbab3360cd04a478",
"body": "* feat(agents): add --mcp flag for Cursor and Claude MCP wiring\n\nProject .cursor/mcp.json and Claude .mcp.json merge idempotently;\nClaude permissions allow mcp__codemap__*.\n\n* fix(agents): address PR #135 review findings for --mcp wiring\n\nMCP-only re-run on existing .agents/, interactive prompt fix,\n[…]\nentries include transportType stdio.\n\n* test(agents): close final PR #135 review nits\n\nAmazon Q legacy shape + idempotency tests, filtered integration E2E,\nregistry JSDoc fix, agents.md --mcp wording.",
"is_bot": false,
"headline": "feat(agents): agents init --mcp wiring (PR 8) (#135)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T15:24:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e7cc66464f829affc03494f9a1543486beeef274",
"body": "Unblocks the Release workflow — changeset version failed because the file referenced \"codemap\" instead of \"@stainless-code/codemap\".",
"is_bot": false,
"headline": "fix(changeset): use scoped package name in mcp-affected-tool",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T14:30:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ff89d8cf72e851d03b409706c3cbab452c47cd8a",
"body": "Add MCP/HTTP trace, explore, and node tools composing call-path and\nsymbol-neighborhood recipes with output budget, allowlist wiring, and docs.",
"is_bot": false,
"headline": "feat(mcp): trace, explore, and node MCP/HTTP tools (PR 6)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T14:27:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "386ffa663d2dbb94b16d07c85c6cdf91f04e5b4e",
"body": "* feat(mcp): add affected tool for MCP and HTTP\n\nExtract shared affected-engine from cmd-affected; register affected on\nMCP/HTTP with paths/changed_since/test_glob/max_depth. Document in\nmcp-instructions and skill; include in CODEMAP_MCP_TOOLS allowlist.\n\n* fix(mcp): address PR review findings for a\n[…]\nparams and recency tests\n\nRequire integer coercion for recipe number params, document recency skip\non empty paths, and add MCP/HTTP/CLI parity tests for max_depth validation\nand recipe_recency writes.",
"is_bot": false,
"headline": "feat(mcp): MCP/HTTP affected tool (Phase 2) (#133)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T13:48:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8a1de53ae978b2d038fdc355917391be416a5fe2",
"body": "* feat(cli): add affected-tests recipe and codemap affected command\n\nReverse-dependency walk from changed files to test paths via test_suites\nand default test suffix globs; stdin/git/positional path sources.\n\n* docs: link PR 132 in agent-surface delivery tracker\n\n* docs: fix quick-resume link for PR\n[…]\nncy.\n\n* fix(affected): use pipe stdin in e2e spawn helper\n\nBlob ReadableStream stdin was flaky on Linux CI — path reads returned []\nwhile positional args worked. Write+end on an explicit pipe instead.",
"is_bot": false,
"headline": "feat(affected): affected-tests recipe + codemap affected CLI (#132)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T13:18:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a8cf25ba787312224e7dfe0ca1945c45dae51285",
"body": "* feat(recipes): add call-path and symbol-neighborhood trace recipes\n\nShip cycle-safe call-path tracing and depth-bounded symbol neighborhood\nexploration with golden fixtures — recipe half of the MCP trace plan.\n\n* docs: link PR 131 in agent-surface delivery tracker\n\n* fix(recipes): address trace recipe review findings\n\nPrefer call paths over file imports for via=all; document via modes and\nneighborhood depth semantics; expand golden coverage; changeset patch bump.",
"is_bot": false,
"headline": "feat(recipes): call-path and symbol-neighborhood trace recipes (#131)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T12:27:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f5374b8519135066ce7271837d65bb0547c0c53d",
"body": "* feat(index): per-file parse timeouts and worker recycle\n\nProcess one file per worker message with Promise.race timeouts (10–30s\nscaled by size), recycle workers every 250 files, route incremental parsing\nthrough the worker pool, and surface parse failure counts in the index summary.\n\n* fix(worker-\n[…]\nhput\n\nKeep per-file timeout via chunk bisection on timeout, inline parse for\nsmall batches (<=12 files), and worker recycle. Fixes CLI integration\ntest timeouts from per-message worker spawn overhead.",
"is_bot": false,
"headline": "feat(index): parse worker timeouts and recycle (#130)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T09:08:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6648add30205e1d07cf0c778a9d1332fd583fd43",
"body": "Acquire <state-dir>/index.lock before indexing with in-process serialization,\nfail-fast when another live indexer holds the lock, and append parse failures\nto errors.log. Adds codemap unlock for stale lock recovery.",
"is_bot": false,
"headline": "feat(index): cross-process lock, unlock CLI, and errors.log (#129)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T08:42:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4318cc4694e5af6157842d864bc9075617d26af9",
"body": "Disable the file watcher on WSL2 /mnt/* mounts unless CODEMAP_FORCE_WATCH=1,\nwith stderr pointing at git-hook fallback. Add codemap agents init --git-hooks\nfor non-blocking background incremental index on post-commit/merge/checkout.",
"is_bot": false,
"headline": "feat(watch): WSL watch policy and opt-in git hook auto-sync (#127)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T08:38:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ed4ca6bc4d2feab67901079951d3077ca405c588",
"body": "…126)\n\nInject a tool-selection playbook via MCP initialize instructions and\nexpose it as codemap://mcp-instructions. Add CODEMAP_MCP_TOOLS for\nsubset tool registration (eval ablation / minimal installs).",
"is_bot": false,
"headline": "feat(mcp): add server instructions and CODEMAP_MCP_TOOLS allowlist (#…",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T08:37:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8807614c17ef7febf5da9d8c5020d2abb1a36174",
"body": "Capture wave/PR map, parallelization rules, and live status so agent-surface\nwork can pause and resume outside a single session.",
"is_bot": false,
"headline": "docs(plans): add agent-surface delivery PR tracker (#128)",
"author_name": "Sutu Sebastian",
"author_login": "SutuSebastian",
"committed_at": "2026-05-25T08:37:23Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 38,
"commits_last_year": 273,
"latest_release_at": "2026-07-20T10:29:51Z",
"latest_release_tag": "@stainless-code/codemap@0.11.4",
"releases_from_tags": false,
"days_since_last_push": 3,
"active_weeks_last_year": 11,
"days_since_latest_release": 6,
"mean_days_between_releases": 6
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 75,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": true
},
"ecosystem": {
"packages": [
{
"name": "@stainless-code/codemap",
"exists": true,
"license": "MIT",
"keywords": [
"agents",
"ai",
"codebase",
"dependencies",
"imports",
"index",
"sqlite",
"symbols"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/@stainless-code/codemap",
"is_deprecated": false,
"latest_version": "0.11.4",
"repository_url": "https://github.com/stainless-code/codemap",
"versions_count": 38,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 8315,
"first_published_at": "2026-04-07T07:31:49.235000Z",
"latest_published_at": "2026-07-20T10:29:49.671000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 6
}
]
},
"popularity": {
"forks": 1,
"stars": 8,
"watchers": 0,
"fork_history": {
"days": [
{
"date": "2026-07-16",
"count": 1
}
],
"complete": true,
"collected": 1,
"total_forks": 1
},
"star_history": null,
"open_issues_and_prs": 5
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"recipes"
],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": true,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"apps/docs/tsconfig.json",
"fixtures/minimal/tsconfig.json",
"tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 84238,
"source_files_sampled": 355,
"oversized_source_files": 2,
"agent_instruction_files": [
".cursor/rules/agents-first-convention.mdc",
".cursor/rules/agents-tier-system.mdc",
".cursor/rules/architecture-priming.mdc",
".cursor/rules/authoring-discipline.mdc",
".cursor/rules/codemap.mdc",
".cursor/rules/concise-reporting.mdc",
".cursor/rules/consumer-surfaces.mdc",
".cursor/rules/docs-governance.mdc",
".cursor/rules/docs-voice-priming.mdc",
".cursor/rules/lessons.mdc",
".cursor/rules/no-bypass-hooks.mdc",
".cursor/rules/plan-pr-inspiration-discipline.mdc",
".cursor/rules/pr-comment-fact-check.mdc",
".cursor/rules/tracer-bullets.mdc",
".cursor/rules/verify-after-each-step.mdc",
"AGENTS.md",
"docs/agents.md"
],
"agent_instruction_max_bytes": 34650
},
"dependencies": {
"manifests": [
"package.json"
],
"advisories": {
"error": null,
"scope": "published_package",
"source": "osv",
"findings": [
{
"name": "@hono/node-server",
"direct": false,
"version": "1.19.15",
"severity": "moderate",
"ecosystem": "npm",
"cvss_score": 5.9,
"advisory_ids": [
"GHSA-frvp-7c67-39w9"
],
"fixed_version": "2.0.5",
"advisory_count": 1,
"oldest_advisory_days": 4
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"moderate": 1
},
"advisory_count": 1,
"affected_count": 1,
"assessed_count": 202,
"malicious_count": 0,
"assessed_package": "npm:@stainless-code/codemap@0.11.4",
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "@clack/prompts",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "1.7.0"
},
{
"name": "@modelcontextprotocol/sdk",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "1.29.0"
},
{
"name": "better-sqlite3",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "12.11.1"
},
{
"name": "chokidar",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "5.0.0"
},
{
"name": "lightningcss",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "1.33.0"
},
{
"name": "oxc-parser",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "0.140.0"
},
{
"name": "oxc-resolver",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "11.24.2"
},
{
"name": "package-manager-detector",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "1.7.0"
},
{
"name": "tinyglobby",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "0.2.17"
},
{
"name": "zod",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "4.4.3"
}
],
"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": 5,
"merged_prs": 198,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 11
},
"bus_factor": 1,
"bot_contributors": 2,
"top_contributors": [
{
"type": "User",
"login": "SutuSebastian",
"commits": 232,
"avatar_url": "https://avatars.githubusercontent.com/u/41998826?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"agent-eval-external.yml",
"ci.yml",
"deploy-docs.yml",
"perf-baseline.yml",
"release.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"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": null,
"reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 7,
"reason": "17 out of 22 merged PRs checked by a CI test -- score normalized to 7",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/21 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 3,
"reason": "project has 1 contributing companies or organizations -- score normalized to 3",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 0,
"reason": "dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 8,
"reason": "dependency not pinned by hash detected -- score normalized to 8",
"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": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 7,
"reason": "3 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "a7f1f1c671940a2a008a0de128c8306bb1582b1e",
"ran_at": "2026-07-26T14:49:31Z",
"aggregate_score": 4.3,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": true
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-22T16:20:49Z",
"oldest_open_prs": [
{
"number": 208,
"created_at": "2026-07-21T17:14:03Z",
"last_comment_at": "2026-07-21T17:14:10Z",
"last_comment_author": "changeset-bot"
},
{
"number": 210,
"created_at": "2026-07-21T17:14:31Z",
"last_comment_at": "2026-07-21T17:14:36Z",
"last_comment_author": "changeset-bot"
},
{
"number": 211,
"created_at": "2026-07-21T17:14:45Z",
"last_comment_at": "2026-07-21T17:14:51Z",
"last_comment_author": "changeset-bot"
},
{
"number": 212,
"created_at": "2026-07-21T17:14:52Z",
"last_comment_at": "2026-07-21T17:14:56Z",
"last_comment_author": "changeset-bot"
},
{
"number": 214,
"created_at": "2026-07-22T16:21:05Z",
"last_comment_at": "2026-07-22T16:21:10Z",
"last_comment_author": "changeset-bot"
}
],
"last_merged_pr_at": "2026-07-22T16:18:27Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/stainless-code/codemap",
"host": "github.com",
"name": "codemap",
"owner": "stainless-code"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 63,
"inputs": {
"security": 52,
"vitality": 83,
"community": 49,
"governance": 52,
"engineering": 77
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 83,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 72,
"inputs": {
"commits_last_year": 273,
"human_commit_share": 0.83,
"days_since_last_push": 3,
"active_weeks_last_year": 11
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 3 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 3
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "11/52 weeks with commits",
"points": 7.6,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 11
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "273 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 273
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 100,
"inputs": {
"releases_count": 38,
"latest_release_tag": "@stainless-code/codemap@0.11.4",
"releases_from_tags": false,
"days_since_latest_release": 6,
"mean_days_between_releases": 6
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "38 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 38
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 6 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 6
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~6 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 6
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "at_risk",
"name": "Community & Adoption",
"value": 49,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 14,
"inputs": {
"forks": 1,
"stars": 8,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "8 stars",
"points": 13.7,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 8
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "1 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 1
}
}
],
"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": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 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": 6.3,
"status": "met",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "moderate",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 65,
"inputs": {
"packages": [
"@stainless-code/codemap"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 8315
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "8,315 downloads/month across npm",
"points": 52.3,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 8315,
"ecosystems": "npm"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 52,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 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": "moderate",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 68,
"inputs": {
"merged_prs": 198,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 11
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "no issues or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_issues_or_data",
"params": {}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "198/209 decided PRs merged",
"points": 36.2,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 198,
"decided": 209
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/21 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "at_risk",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 43,
"inputs": {
"followers": 1,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "stainless-code",
"public_repos": 9,
"account_age_days": 615
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "organization-owned",
"points": 30,
"status": "met",
"details": [
{
"code": "owner_organization",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "1 followers of stainless-code",
"points": 2.2,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 1,
"login": "stainless-code"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "9 public repos, account ~1 yr old",
"points": 10.6,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 9
}
},
{
"code": "account_age_years",
"params": {
"years": 1
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"@stainless-code/codemap"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 6
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on npm",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "npm"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 6 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 6
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "38 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 38
}
}
],
"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": 77,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 62,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "5 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 5
}
}
],
"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": null,
"points": 0,
"status": "missed",
"details": [],
"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": "17 out of 22 merged PRs checked by a CI test -- score normalized to 7",
"points": 14,
"status": "partial",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"topics": [
"ai-agents",
"ai-coding",
"ast",
"code-graph",
"code-index",
"code-intelligence",
"code-navigation",
"codebase",
"css",
"cursor",
"dead-code",
"dependencies",
"devtools",
"mcp",
"model-context-protocol",
"refactoring",
"sarif",
"sqlite",
"static-analysis",
"typescript"
],
"has_wiki": true,
"homepage": "https://stainless-code.com/codemap",
"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://stainless-code.com/codemap",
"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": "20 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 20
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "moderate",
"name": "Security",
"value": 52,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Branch-Protection, Packaging, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"branch_protection",
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 43,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 15,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 3,
"scorecard_aggregate": 4.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": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "17 out of 22 merged PRs checked by a CI test -- score normalized to 7",
"points": 1.8,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/21 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 1 contributing companies or organizations -- score normalized to 3",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "dangerous workflow patterns detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 8",
"points": 4,
"status": "partial",
"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": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "3 existing vulnerabilities detected",
"points": 5.2,
"status": "partial",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "excellent",
"name": "Dependency advisories",
"note": "Matched the npm:@stainless-code/codemap@0.11.4 runtime dependency closure — what installing the published package pulls in — 202 packages. Reachability is not analyzed.",
"notes": [
{
"code": "advisories_scope_published",
"params": {
"package": "npm:@stainless-code/codemap@0.11.4",
"assessed": 202
}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 88,
"inputs": {
"source": "osv",
"advisories": 1,
"affected_packages": 1,
"assessed_packages": 202,
"unassessed_packages": 0,
"affected_by_severity": "moderate 1",
"direct_affected_packages": 0
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "no direct dependency carries a known advisory",
"points": 35,
"status": "met",
"details": [
{
"code": "no_direct_advisories",
"params": {}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "1 affected: @hono/node-server 1.19.15 (moderate 5.9)",
"points": 13.2,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 1,
"packages": "@hono/node-server 1.19.15 (moderate 5.9)"
}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "no advisory has been public longer than 90 days",
"points": 40,
"status": "met",
"details": [
{
"code": "advisories_none_stale",
"params": {
"days": 90
}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 202,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 1
},
"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": "moderate",
"name": "AI Readiness",
"value": 69,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 1,
"agent_instruction_files": [
".cursor/rules/agents-first-convention.mdc",
".cursor/rules/agents-tier-system.mdc",
".cursor/rules/architecture-priming.mdc",
".cursor/rules/authoring-discipline.mdc",
".cursor/rules/codemap.mdc",
".cursor/rules/concise-reporting.mdc",
".cursor/rules/consumer-surfaces.mdc",
".cursor/rules/docs-governance.mdc",
".cursor/rules/docs-voice-priming.mdc",
".cursor/rules/lessons.mdc",
".cursor/rules/no-bypass-hooks.mdc",
".cursor/rules/plan-pr-inspiration-discipline.mdc",
".cursor/rules/pr-comment-fact-check.mdc",
".cursor/rules/tracer-bullets.mdc",
".cursor/rules/verify-after-each-step.mdc",
"AGENTS.md",
"docs/agents.md"
],
"agent_instruction_max_bytes": 34650
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": ".cursor/rules/agents-first-convention.mdc, .cursor/rules/agents-tier-system.mdc, .cursor/rules/architecture-priming.mdc, .cursor/rules/authoring-discipline.mdc, .cursor/rules/codemap.mdc, .cursor/rules/concise-reporting.mdc, .cursor/rules/consumer-surfaces.mdc, .cursor/rules/docs-governance.mdc, .cursor/rules/docs-voice-priming.mdc, .cursor/rules/lessons.mdc, .cursor/rules/no-bypass-hooks.mdc, .cursor/rules/plan-pr-inspiration-discipline.mdc, .cursor/rules/pr-comment-fact-check.mdc, .cursor/rules/tracer-bullets.mdc, .cursor/rules/verify-after-each-step.mdc, AGENTS.md, docs/agents.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".cursor/rules/agents-first-convention.mdc, .cursor/rules/agents-tier-system.mdc, .cursor/rules/architecture-priming.mdc, .cursor/rules/authoring-discipline.mdc, .cursor/rules/codemap.mdc, .cursor/rules/concise-reporting.mdc, .cursor/rules/consumer-surfaces.mdc, .cursor/rules/docs-governance.mdc, .cursor/rules/docs-voice-priming.mdc, .cursor/rules/lessons.mdc, .cursor/rules/no-bypass-hooks.mdc, .cursor/rules/plan-pr-inspiration-discipline.mdc, .cursor/rules/pr-comment-fact-check.mdc, .cursor/rules/tracer-bullets.mdc, .cursor/rules/verify-after-each-step.mdc, AGENTS.md, docs/agents.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": "83 of 83 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 83,
"sampled": 83
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "at_risk",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 49,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [
"apps/docs/tsconfig.json",
"fixtures/minimal/tsconfig.json",
"tsconfig.json"
],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0.04
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "apps/docs/tsconfig.json, fixtures/minimal/tsconfig.json, tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "apps/docs/tsconfig.json, fixtures/minimal/tsconfig.json, tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "4 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 4,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 8",
"points": 8,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "TypeScript",
"largest_source_bytes": 84238,
"source_files_sampled": 355,
"oversized_source_files": 2
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "TypeScript (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "TypeScript"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "2/355 source files over 60KB",
"points": 54.7,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 355,
"oversized": 2
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "moderate",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"example_dirs": [
"recipes"
],
"has_mcp_signal": true,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 20,
"status": "met",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "recipes",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "recipes"
}
}
],
"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-26T14:49:44.903899Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/stainless-code/codemap.svg",
"full_name": "stainless-code/codemap",
"license_state": "standard",
"license_spdx": "MIT"
}