Public record
Software health reportschema 0.30.0 · metrics 2.5.0 · 2026-08-03 00:33 UTC

scanaislop / aislop

Catch the slop AI coding agents leave in your code: narrative comments, swallowed exceptions, as-any casts, dead code, oversized functions. 50+ rules across 8 languages (TypeScript, JavaScript, Python, Go, Rust, Ruby, PHP). Sub-second, deterministic, no LLM at runtime. MIT-licensed.

TypeScriptMIT★ 530 stars⑂ 24 forkssince Mar 2026View on GitHub ↗
KindCommand-line toolLibraryMCP serverTerminal interfacehow this is determined

scanaislop/aislop holds a health index of 87 out of 100, placing it in the Excellent band. It scores highest on Engineering Quality (94/100) and lowest on Sustainability & Governance (52/100). It was last updated 1 day ago. A single contributor accounts for most of its recent work.

87
overall / 100
Excellent

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean, calibrated against the distribution of the public record so bands carry percentile meaning; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At Risk ceiling of 34.

87
Exceptional93-100The record's top tier (≈ top 5%); essentially all checked criteria met
Excellent80-92Strong across the board; minor gaps
Good65-79Healthy; gaps are limited and manageable
Moderate50-64Acceptable with notable gaps; review recommended
Weak35-49Material weaknesses across several areas
At Risk20-34Significant weaknesses; adoption warrants caution
Critical1-19Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

The weighted overall 73 is calibrated to 87 on the published index scale (record calibration 2026-08-02).

Ownership

9 followers7 public repossince Apr 2026

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
npmaislop0.14.022,0773610 days agoaislopai-slopcode-qualitylinterformattercliaicopilotcode-reviewstatic-analysistypescriptjavascriptpythongorustrubyphp

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

86Excellent · 21% of overall
How it's scored
36/36Push recency — last push 1 days ago
13.2/36Commit cadence — 19/52 weeks with commits
18/18Commit volume — 322 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year322
human_commit_share0.87
days_since_last_push1
active_weeks_last_year19

Release discipline

100Exceptional
How it's scored
27/27Ships releases — 36 releases published
36/36Release recency — latest release 10 days ago
27/27Release cadence — a release every ~6.1 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count36
latest_release_tagv0.14.0
releases_from_tagsno
days_since_latest_release10
mean_days_between_releases6.1
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

73Good · 17% of overall
How it's scored
44.2/60Stars — 530 stars
11.3/25Forks — 24 forks
0/15Watchers — 2 watchers
Inputs used
forks24
stars530
watchers2
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

Community health

92Excellent
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (MIT)
18/18CONTRIBUTING guide
13.5/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
readme_badges8
has_contributingyes
has_issue_templateno
has_code_of_conductyes
readme_badge_servicesgithub.com, shields.io
has_pull_request_templateyes
How it's scored
57.9/80Monthly downloads — 22,077 downloads/month across npm
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagesaislop
dependents
ecosystemsnpm
total_downloads
monthly_downloads22,077
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

52Moderate · 23% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
1.8/22.5Commit distribution — top contributor authored 92% of commits
5.4/13.5Contributor breadth — 4 contributors
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Inputs used
bus_factor1
contributors_sampled4
top_contributor_share0.922
How it's scored
23.4/42Issue resolution — 56% of issues closed
28.5/30PR acceptance — 271/285 decided PRs merged
0/13Newcomer PR acceptance — no first-time contributor's PR decided in 30d
0/15OpenSSF Scorecard: Code-Review — Found 0/17 approved changesets -- score normalized to 0
Inputs used
merged_prs271
open_issues8
closed_issues10
prs_merged_7d0
prs_decided_7d0
prs_merged_30d31
prs_decided_30d32
issue_closed_ratio0.556
closed_unmerged_prs14
first_time_authors_30d0
first_time_prs_merged_30d0
first_time_prs_decided_30d0
Excluded from scoring (no data or not applicable): newcomer_pr_acceptance. Remaining weights renormalized.
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
7.2/25Owner reach — 9 followers of scanaislop
7.2/25Track record — 7 public repos, account ~0 yr old
Inputs used
followers9
owner_typeOrganization
is_verified
owner_loginscanaislop
public_repos7
account_age_days105

Package maintenance

100Exceptional
How it's scored
25/25Published & resolvable — 1 package(s) on npm
35/35Publish recency — latest publish 10 days ago
20/20Version history — 36 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesaislop
ecosystemsnpm
any_deprecatedno
min_days_since_publish10

Engineering Quality

Are baseline engineering and documentation practices in place?

94Exceptional · 19% of overall
How it's scored
24/24CI workflows — 6 workflow(s)
24/24Tests present
16/16Linter config — biome.json
0/9.6Pre-commit hooks
6.4/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 18 out of 18 merged PRs checked by a CI test -- score normalized to 10
Inputs used
has_ciyes
has_testsyes
has_editorconfigyes
has_linter_configyes
has_precommit_configno

Documentation

100Exceptional
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://scanaislop.com
10/10Repository description
10/10Topics — 20 topics
10/10Wiki
Inputs used
topicsai, ai-slop, ai-slop-detection, cli, code-quality, code-review, developer-tools, linter, static-analysis, github-actions, pre-commit, quality-gate, typescript, go, javascript, php, pull-request, python, ruby, rust
has_wikiyes
homepagehttps://scanaislop.com
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

61Moderate · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
3/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 18 out of 18 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/17 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
7.5/7.5Maintained — 30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
3.5/5SAST — SAST tool detected but not run on all commits
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — no data
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0.8/7.5Vulnerabilities — 9 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate5.7
Excluded from scoring (no data or not applicable): signed_releases. Remaining weights renormalized.
How it's scored
14/35Direct dependencies free of known advisories — 1 affected: adm-zip 0.5.18 (high 7.5)
25/25Indirect dependencies free of known advisories — no indirect dependency carries a known advisory
40/40No advisories left outstanding — no advisory has been public longer than 90 days
Inputs used
sourceosv
advisories1
affected_packages1
assessed_packages243
unassessed_packages0
affected_by_severityhigh 1
direct_affected_packages1
Matched the npm:aislop@0.14.0 runtime dependency closure — what installing the published package pulls in — 243 packages. Reachability is not analyzed.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight (4%): agent tooling is a real maintenance signal, but a repository with none can still reach 100/100.

78Good · 4% of overall
How it's scored
45/45Agent instructions — AGENTS.md, CLAUDE.md, GEMINI.md
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 76 of 87 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.874
agent_instruction_filesAGENTS.md, CLAUDE.md, GEMINI.md
agent_instruction_max_bytes7,026
How it's scored
0/18One-command bootstrap
22/22Automated tests
11/11Lint / format config — biome.json
11/11Static type checking — editors/vscode/tsconfig.json, tsconfig.json
10/10Reproducible environment — lockfile
10/10Demonstrated agent practice — 11 of the last 100 commits agent-authored or agent-credited
8/8Automated maintenance — 13 of the last 100 commits are automated dependency updates
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Inputs used
has_nixno
has_testsyes
lockfilespnpm-lock.yaml
has_dockerfileno
typed_languageyes
bootstrap_files
has_devcontainerno
has_linter_configyes
typecheck_configseditors/vscode/tsconfig.json, tsconfig.json
agent_commit_share0.11
toolchain_manifests
dependency_bot_commit_share0.13
How it's scored
45/45Type-checkable code — TypeScript (statically typed)
55/55Manageable file sizes — 0/432 source files over 60KB
Inputs used
primary_languageTypeScript
largest_source_bytes54,193
source_files_sampled432
oversized_source_files0
How it's scored
0/40API schema (OpenAPI/GraphQL/proto)
20/20MCP server
40/40Runnable examples — examples
Inputs used
example_dirsexamples
has_mcp_signalyes
api_schema_files

Key facts

530GitHub stars
4contributors
322commits, last 12 months
1days since last push
36releases
1bus factor
8open issues
npmpackage ecosystems

Data collection warnings

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

More detail

Star and fork history 0 ★ / 24 ⇿
0Stars
24Forks
33Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

048121620242442026-032026-052026-07
Major 0Minor 13Patch 20
OpenSSF Scorecard 5.7 / 10
5.7aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-08-03 00:33 UTC

10Binary-Artifactsno binaries found in the repo
4Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests18 out of 18 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/17 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
7SASTSAST tool detected but not run on all commits
10Security-Policysecurity policy file detected
n/aSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
1Vulnerabilities9 existing vulnerabilities detected
Direct dependencies 19
RegistryPackageVersion constraintManifest
npm@biomejs/biome^2.5.4package.json
npm@clack/prompts^1.7.0package.json
npm@modelcontextprotocol/sdk^1.29.0package.json
npmadm-zip^0.5.18package.json
npmcommander^14.0.3package.json
npmexpo-doctor^1.20.0package.json
npmink^6.8.0package.json
npmink-select-input^6.2.0package.json
npmknip^5.85.0package.json
npmmicromatch^4.0.8package.json
npmoxlint^1.74.0package.json
npmpicocolors^1.1.1package.json
npmreact^19.2.7package.json
npmsmol-toml^1.7.0package.json
npmtar^7.5.19package.json
npmtypescript^5.9.3package.json
npmwcwidth^1.0.1package.json
npmyaml^2.9.0package.json
npmzod^4.4.3package.json
All dependencies 427

Full resolved dependency set from the GitHub dependency graph: 20 direct and 407 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

RegistryPackageVersionRelation
npm@biomejs/biome2.5.4direct
npm@clack/prompts1.7.0direct
npm@modelcontextprotocol/sdk1.29.0direct
npmadm-zip0.5.18direct
npmcommander14.0.3direct
npmexpo-doctor1.20.0direct
npmink6.8.0direct
npmink-select-input6.2.0direct
npmknip5.88.1direct
npmmicromatch4.0.8direct
npmoxlint1.74.0direct
npmpicocolors1.1.1direct
npmreact19.2.7direct
npmsmol-toml1.7.0direct
npmtar7.5.19direct
npmtypescript5.9.3direct
npmtypescript^5.4.0direct
npmwcwidth1.0.1direct
npmyaml2.9.0direct
npmzod4.4.3direct
npm@alcalzone/ansi-tokenize0.2.5indirect
npm@biomejs/cli-darwin-arm642.5.4indirect
npm@biomejs/cli-darwin-x642.5.4indirect
npm@biomejs/cli-linux-arm642.5.4indirect
npm@biomejs/cli-linux-arm64-musl2.5.4indirect
npm@biomejs/cli-linux-x642.5.4indirect
npm@biomejs/cli-linux-x64-musl2.5.4indirect
npm@biomejs/cli-win32-arm642.5.4indirect
npm@biomejs/cli-win32-x642.5.4indirect
npm@clack/core1.4.3indirect
npm@emnapi/core1.11.0indirect
npm@emnapi/core1.11.1indirect
npm@emnapi/core1.11.2indirect
npm@emnapi/runtime1.11.0indirect
npm@emnapi/runtime1.11.1indirect
npm@emnapi/runtime1.11.2indirect
npm@emnapi/wasi-threads1.2.2indirect
npm@esbuild/aix-ppc640.28.1indirect
npm@esbuild/android-arm0.28.1indirect
npm@esbuild/android-arm640.28.1indirect
npm@esbuild/android-x640.28.1indirect
npm@esbuild/darwin-arm640.28.1indirect
npm@esbuild/darwin-x640.28.1indirect
npm@esbuild/freebsd-arm640.28.1indirect
npm@esbuild/freebsd-x640.28.1indirect
npm@esbuild/linux-arm0.28.1indirect
npm@esbuild/linux-arm640.28.1indirect
npm@esbuild/linux-ia320.28.1indirect
npm@esbuild/linux-loong640.28.1indirect
npm@esbuild/linux-mips64el0.28.1indirect
npm@esbuild/linux-ppc640.28.1indirect
npm@esbuild/linux-riscv640.28.1indirect
npm@esbuild/linux-s390x0.28.1indirect
npm@esbuild/linux-x640.28.1indirect
npm@esbuild/netbsd-arm640.28.1indirect
npm@esbuild/netbsd-x640.28.1indirect
npm@esbuild/openbsd-arm640.28.1indirect
npm@esbuild/openbsd-x640.28.1indirect
npm@esbuild/openharmony-arm640.28.1indirect
npm@esbuild/sunos-x640.28.1indirect
npm@esbuild/win32-arm640.28.1indirect
npm@esbuild/win32-ia320.28.1indirect
npm@esbuild/win32-x640.28.1indirect
npm@hono/node-server1.19.14indirect
npm@isaacs/fs-minipass4.0.1indirect
npm@jridgewell/sourcemap-codec1.5.5indirect
npm@napi-rs/wasm-runtime1.1.6indirect
npm@nodelib/fs.scandir2.1.5indirect
npm@nodelib/fs.stat2.0.5indirect
npm@nodelib/fs.walk1.2.8indirect
npm@oxc-project/types0.115.0indirect
npm@oxc-project/types0.139.0indirect
npm@oxc-project/types0.140.0indirect
npm@oxc-resolver/binding-android-arm-eabi11.21.3indirect
npm@oxc-resolver/binding-android-arm6411.21.3indirect
npm@oxc-resolver/binding-darwin-arm6411.21.3indirect
npm@oxc-resolver/binding-darwin-x6411.21.3indirect
npm@oxc-resolver/binding-freebsd-x6411.21.3indirect
npm@oxc-resolver/binding-linux-arm-gnueabihf11.21.3indirect
npm@oxc-resolver/binding-linux-arm-musleabihf11.21.3indirect
npm@oxc-resolver/binding-linux-arm64-gnu11.21.3indirect
npm@oxc-resolver/binding-linux-arm64-musl11.21.3indirect
npm@oxc-resolver/binding-linux-ppc64-gnu11.21.3indirect
npm@oxc-resolver/binding-linux-riscv64-gnu11.21.3indirect
npm@oxc-resolver/binding-linux-riscv64-musl11.21.3indirect
npm@oxc-resolver/binding-linux-s390x-gnu11.21.3indirect
npm@oxc-resolver/binding-linux-x64-gnu11.21.3indirect
npm@oxc-resolver/binding-linux-x64-musl11.21.3indirect
npm@oxc-resolver/binding-openharmony-arm6411.21.3indirect
npm@oxc-resolver/binding-wasm32-wasi11.21.3indirect
npm@oxc-resolver/binding-win32-arm64-msvc11.21.3indirect
npm@oxc-resolver/binding-win32-x64-msvc11.21.3indirect
npm@oxlint/binding-android-arm-eabi1.74.0indirect
npm@oxlint/binding-android-arm641.74.0indirect
npm@oxlint/binding-darwin-arm641.74.0indirect
npm@oxlint/binding-darwin-x641.74.0indirect
npm@oxlint/binding-freebsd-x641.74.0indirect
npm@oxlint/binding-linux-arm-gnueabihf1.74.0indirect
npm@oxlint/binding-linux-arm-musleabihf1.74.0indirect
npm@oxlint/binding-linux-arm64-gnu1.74.0indirect
npm@oxlint/binding-linux-arm64-musl1.74.0indirect
npm@oxlint/binding-linux-ppc64-gnu1.74.0indirect
npm@oxlint/binding-linux-riscv64-gnu1.74.0indirect
npm@oxlint/binding-linux-riscv64-musl1.74.0indirect
npm@oxlint/binding-linux-s390x-gnu1.74.0indirect
npm@oxlint/binding-linux-x64-gnu1.74.0indirect
npm@oxlint/binding-linux-x64-musl1.74.0indirect
npm@oxlint/binding-openharmony-arm641.74.0indirect
npm@oxlint/binding-win32-arm64-msvc1.74.0indirect
npm@oxlint/binding-win32-ia32-msvc1.74.0indirect
npm@oxlint/binding-win32-x64-msvc1.74.0indirect
npm@quansync/fs1.0.0indirect
npm@rolldown/binding-android-arm641.0.0-rc.6indirect
npm@rolldown/binding-android-arm641.1.5indirect
npm@rolldown/binding-android-arm641.2.0indirect
npm@rolldown/binding-darwin-arm641.0.0-rc.6indirect
npm@rolldown/binding-darwin-arm641.1.5indirect
npm@rolldown/binding-darwin-arm641.2.0indirect
npm@rolldown/binding-darwin-x641.0.0-rc.6indirect
npm@rolldown/binding-darwin-x641.1.5indirect
npm@rolldown/binding-darwin-x641.2.0indirect
npm@rolldown/binding-freebsd-x641.0.0-rc.6indirect
npm@rolldown/binding-freebsd-x641.1.5indirect
npm@rolldown/binding-freebsd-x641.2.0indirect
npm@rolldown/binding-linux-arm-gnueabihf1.0.0-rc.6indirect
npm@rolldown/binding-linux-arm-gnueabihf1.1.5indirect
npm@rolldown/binding-linux-arm-gnueabihf1.2.0indirect
npm@rolldown/binding-linux-arm64-gnu1.0.0-rc.6indirect
npm@rolldown/binding-linux-arm64-gnu1.1.5indirect
npm@rolldown/binding-linux-arm64-gnu1.2.0indirect
npm@rolldown/binding-linux-arm64-musl1.0.0-rc.6indirect
npm@rolldown/binding-linux-arm64-musl1.1.5indirect
npm@rolldown/binding-linux-arm64-musl1.2.0indirect
npm@rolldown/binding-linux-ppc64-gnu1.1.5indirect
npm@rolldown/binding-linux-ppc64-gnu1.2.0indirect
npm@rolldown/binding-linux-s390x-gnu1.1.5indirect
npm@rolldown/binding-linux-s390x-gnu1.2.0indirect
npm@rolldown/binding-linux-x64-gnu1.0.0-rc.6indirect
npm@rolldown/binding-linux-x64-gnu1.1.5indirect
npm@rolldown/binding-linux-x64-gnu1.2.0indirect
npm@rolldown/binding-linux-x64-musl1.0.0-rc.6indirect
npm@rolldown/binding-linux-x64-musl1.1.5indirect
npm@rolldown/binding-linux-x64-musl1.2.0indirect
npm@rolldown/binding-openharmony-arm641.0.0-rc.6indirect
npm@rolldown/binding-openharmony-arm641.1.5indirect
npm@rolldown/binding-openharmony-arm641.2.0indirect
npm@rolldown/binding-wasm32-wasi1.0.0-rc.6indirect
npm@rolldown/binding-wasm32-wasi1.1.5indirect
npm@rolldown/binding-wasm32-wasi1.2.0indirect
npm@rolldown/binding-win32-arm64-msvc1.0.0-rc.6indirect
npm@rolldown/binding-win32-arm64-msvc1.1.5indirect
npm@rolldown/binding-win32-arm64-msvc1.2.0indirect
npm@rolldown/binding-win32-x64-msvc1.0.0-rc.6indirect
npm@rolldown/binding-win32-x64-msvc1.1.5indirect
npm@rolldown/binding-win32-x64-msvc1.2.0indirect
npm@rolldown/pluginutils1.0.0-rc.6indirect
npm@rolldown/pluginutils1.0.1indirect
npm@standard-schema/spec1.1.0indirect
npm@tybys/wasm-util0.10.3indirect
npm@types/braces3.0.5indirect
npm@types/chai5.2.3indirect
npm@types/deep-eql4.0.2indirect
npm@types/estree1.0.8indirect
npm@types/micromatch4.0.10indirect
npm@types/node25.6.0indirect
npm@types/node^20.11.0indirect
npm@types/react19.2.17indirect
npm@types/vscode^1.85.0indirect
npm@vitest/expect4.1.10indirect
npm@vitest/mocker4.1.10indirect
npm@vitest/pretty-format4.1.10indirect
npm@vitest/runner4.1.10indirect
npm@vitest/snapshot4.1.10indirect
npm@vitest/spy4.1.10indirect
npm@vitest/utils4.1.10indirect
npm@yuku-codegen/binding-darwin-arm640.7.4indirect
npm@yuku-codegen/binding-darwin-x640.7.4indirect
npm@yuku-codegen/binding-freebsd-x640.7.4indirect
npm@yuku-codegen/binding-linux-arm-gnu0.7.4indirect
npm@yuku-codegen/binding-linux-arm-musl0.7.4indirect
npm@yuku-codegen/binding-linux-arm64-gnu0.7.4indirect
npm@yuku-codegen/binding-linux-arm64-musl0.7.4indirect
npm@yuku-codegen/binding-linux-x64-gnu0.7.4indirect
npm@yuku-codegen/binding-linux-x64-musl0.7.4indirect
npm@yuku-codegen/binding-win32-arm640.7.4indirect
npm@yuku-codegen/binding-win32-x640.7.4indirect
npm@yuku-parser/binding-darwin-arm640.7.4indirect
npm@yuku-parser/binding-darwin-x640.7.4indirect
npm@yuku-parser/binding-freebsd-x640.7.4indirect
npm@yuku-parser/binding-linux-arm-gnu0.7.4indirect
npm@yuku-parser/binding-linux-arm-musl0.7.4indirect
npm@yuku-parser/binding-linux-arm64-gnu0.7.4indirect
npm@yuku-parser/binding-linux-arm64-musl0.7.4indirect
npm@yuku-parser/binding-linux-x64-gnu0.7.4indirect
npm@yuku-parser/binding-linux-x64-musl0.7.4indirect
npm@yuku-parser/binding-win32-arm640.7.4indirect
npm@yuku-parser/binding-win32-x640.7.4indirect
npm@yuku-toolchain/types0.7.4indirect
npmaccepts2.0.0indirect
npmajv8.20.0indirect
npmajv-formats3.0.1indirect
npmansi-escapes7.3.0indirect
npmansi-regex6.2.2indirect
npmansi-styles6.2.3indirect
npmansis4.3.1indirect
npmassertion-error2.0.1indirect
npmauto-bind5.0.1indirect
npmbody-parser2.2.2indirect
npmbraces3.0.3indirect
npmbytes3.1.2indirect
npmcac7.0.0indirect
npmcall-bind-apply-helpers1.0.2indirect
npmcall-bound1.0.4indirect
npmchai6.2.2indirect
npmchalk5.6.2indirect
npmchownr3.0.0indirect
npmcli-boxes3.0.0indirect
npmcli-cursor4.0.0indirect
npmcli-truncate5.2.0indirect
npmclone1.0.4indirect
npmcode-excerpt4.0.0indirect
npmcontent-disposition1.1.0indirect
npmcontent-type1.0.5indirect
npmconvert-source-map2.0.0indirect
npmconvert-to-spaces2.0.1indirect
npmcookie0.7.2indirect
npmcookie-signature1.2.2indirect
npmcors2.8.6indirect
npmcross-spawn7.0.6indirect
npmcsstype3.2.3indirect
npmdebug4.4.3indirect
npmdefaults1.0.4indirect
npmdefu6.1.7indirect
npmdepd2.0.0indirect
npmdetect-libc2.1.2indirect
npmdts-resolver3.0.0indirect
npmdunder-proto1.0.1indirect
npmee-first1.1.1indirect
npmemoji-regex10.6.0indirect
npmempathic2.0.1indirect
npmencodeurl2.0.0indirect
npmenvironment1.1.0indirect
npmes-define-property1.0.1indirect
npmes-errors1.3.0indirect
npmes-module-lexer2.1.0indirect
npmes-object-atoms1.1.1indirect
npmes-toolkit1.47.0indirect
npmesbuild0.28.1indirect
npmescape-html1.0.3indirect
npmescape-string-regexp2.0.0indirect
npmestree-walker3.0.3indirect
npmetag1.8.1indirect
npmeventsource3.0.7indirect
npmeventsource-parser3.0.8indirect
npmexpect-type1.3.0indirect
npmexpress5.2.1indirect
npmexpress-rate-limit8.5.1indirect
npmfast-deep-equal3.1.3indirect
npmfast-glob3.3.3indirect
npmfast-string-truncated-width3.0.3indirect
npmfast-string-width3.0.2indirect
npmfast-uri3.1.2indirect
npmfast-wrap-ansi0.2.2indirect
npmfastq1.20.1indirect
npmfd-package-json2.0.0indirect
npmfdir6.5.0indirect
npmfigures6.1.0indirect
npmfill-range7.1.1indirect
npmfinalhandler2.1.1indirect
npmformatly0.3.0indirect
npmforwarded0.2.0indirect
npmfresh2.0.0indirect
npmfsevents2.3.3indirect
npmfunction-bind1.1.2indirect
npmget-east-asian-width1.6.0indirect
npmget-intrinsic1.3.0indirect
npmget-proto1.0.1indirect
npmget-tsconfig5.0.0-beta.5indirect
npmglob-parent5.1.2indirect
npmgopd1.2.0indirect
npmhas-symbols1.1.0indirect
npmhasown2.0.3indirect
npmhono4.12.26indirect
npmhookable6.1.1indirect
npmhttp-errors2.0.1indirect
npmiconv-lite0.7.2indirect
npmimport-without-cache0.4.0indirect
npmindent-string5.0.0indirect
npminherits2.0.4indirect
npmink-testing-library4.0.0indirect
npmip-address10.2.0indirect
npmipaddr.js1.9.1indirect
npmis-extglob2.1.1indirect
npmis-fullwidth-code-point5.1.0indirect
npmis-glob4.0.3indirect
npmis-in-ci2.0.0indirect
npmis-number7.0.0indirect
npmis-promise4.0.0indirect
npmis-unicode-supported2.1.0indirect
npmisexe2.0.0indirect
npmjiti2.7.0indirect
npmjose6.2.3indirect
npmjson-schema-traverse1.0.0indirect
npmjson-schema-typed8.0.2indirect
npmlightningcss1.33.0indirect
npmlightningcss-android-arm641.33.0indirect
npmlightningcss-darwin-arm641.33.0indirect
npmlightningcss-darwin-x641.33.0indirect
npmlightningcss-freebsd-x641.33.0indirect
npmlightningcss-linux-arm-gnueabihf1.33.0indirect
npmlightningcss-linux-arm64-gnu1.33.0indirect
npmlightningcss-linux-arm64-musl1.33.0indirect
npmlightningcss-linux-x64-gnu1.33.0indirect
npmlightningcss-linux-x64-musl1.33.0indirect
npmlightningcss-win32-arm64-msvc1.33.0indirect
npmlightningcss-win32-x64-msvc1.33.0indirect
npmmagic-string0.30.21indirect
npmmath-intrinsics1.1.0indirect
npmmedia-typer1.1.0indirect
npmmerge-descriptors2.0.0indirect
npmmerge21.4.1indirect
npmmime-db1.54.0indirect
npmmime-types3.0.2indirect
npmmimic-fn2.1.0indirect
npmminimist1.2.8indirect
npmminipass7.1.3indirect
npmminizlib3.1.0indirect
npmms2.1.3indirect
npmnanoid3.3.16indirect
npmnegotiator1.0.0indirect
npmobject-assign4.1.1indirect
npmobject-inspect1.13.4indirect
npmobug2.1.1indirect
npmobug2.1.4indirect
npmon-finished2.4.1indirect
npmonce1.4.0indirect
npmonetime5.1.2indirect
npmoxc-resolver11.21.3indirect
npmparseurl1.3.3indirect
npmpatch-console2.0.0indirect
npmpath-key3.1.1indirect
npmpath-to-regexp8.4.2indirect
npmpathe2.0.3indirect
npmpicomatch2.3.2indirect
npmpicomatch4.0.4indirect
npmpicomatch4.0.5indirect
npmpkce-challenge5.0.1indirect
npmpostcss8.5.22indirect
npmproxy-addr2.0.7indirect
npmqs6.15.2indirect
npmquansync1.0.0indirect
npmqueue-microtask1.2.3indirect
npmrange-parser1.2.1indirect
npmraw-body3.0.2indirect
npmreact-reconciler0.33.0indirect
npmrequire-from-string2.0.2indirect
npmresolve-pkg-maps1.0.0indirect
npmrestore-cursor4.0.0indirect
npmreusify1.1.0indirect
npmrolldown1.0.0-rc.6indirect
npmrolldown1.1.5indirect
npmrolldown1.2.0indirect
npmrolldown-plugin-dts0.27.13indirect
npmrouter2.2.0indirect
npmrun-parallel1.2.0indirect
npmsafer-buffer2.1.2indirect
npmscheduler0.27.0indirect
npmsend1.2.1indirect
npmserve-static2.2.1indirect
npmsetprototypeof1.2.0indirect
npmshebang-command2.0.0indirect
npmshebang-regex3.0.0indirect
npmside-channel1.1.0indirect
npmside-channel-list1.0.1indirect
npmside-channel-map1.0.1indirect
npmside-channel-weakmap1.0.2indirect
npmsiginfo2.0.0indirect
npmsignal-exit3.0.7indirect
npmsisteransi1.0.5indirect
npmslice-ansi8.0.0indirect
npmsource-map-js1.2.1indirect
npmstack-utils2.0.6indirect
npmstackback0.0.2indirect
npmstatuses2.0.2indirect
npmstd-env4.1.0indirect
npmstring-width7.2.0indirect
npmstring-width8.2.1indirect
npmstrip-ansi7.2.0indirect
npmstrip-json-comments5.0.3indirect
npmtagged-tag1.0.0indirect
npmterminal-size4.0.1indirect
npmtinybench2.9.0indirect
npmtinyexec1.0.2indirect
npmtinyexec1.2.4indirect
npmtinyglobby0.2.15indirect
npmtinyglobby0.2.17indirect
npmtinyrainbow3.1.0indirect
npmto-regex-range5.0.1indirect
npmto-rotated1.0.0indirect
npmtoidentifier1.0.1indirect
npmtree-kill1.2.2indirect
npmtsdown0.22.13indirect
npmtslib2.8.1indirect
npmtype-fest5.7.0indirect
npmtype-is2.0.1indirect
npmunbash2.2.0indirect
npmunconfig-core7.5.0indirect
npmundici-types7.19.2indirect
npmunpipe1.0.0indirect
npmunrun0.2.29indirect
npmvary1.1.2indirect
npmverkit0.1.2indirect
npmvite8.1.5indirect
npmvitest4.1.10indirect
npmwalk-up-path4.0.0indirect
npmwhich2.0.2indirect
npmwhy-is-node-running2.3.0indirect
npmwidest-line6.0.0indirect
npmwrap-ansi9.0.2indirect
npmwrappy1.0.2indirect
npmws8.21.0indirect
npmyallist5.0.0indirect
npmyoga-layout3.2.1indirect
npmyuku-ast0.7.4indirect
npmyuku-codegen0.7.4indirect
npmyuku-parser0.7.4indirect
npmzod-to-json-schema3.25.2indirect
Dependency advisories 1

Installing npm:aislop@0.14.0 pulls in 243 packages, direct and transitive: 1 carry known advisories, of which 1 are direct dependencies.

PackageVersionRelationSeverityAdvisoriesFixed in
adm-zip0.5.18directhigh10.6.0

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "ai",
        "ai-slop",
        "ai-slop-detection",
        "cli",
        "code-quality",
        "code-review",
        "developer-tools",
        "linter",
        "static-analysis",
        "github-actions",
        "pre-commit",
        "quality-gate",
        "typescript",
        "go",
        "javascript",
        "php",
        "pull-request",
        "python",
        "ruby",
        "rust"
      ],
      "is_fork": false,
      "size_kb": 3337,
      "has_wiki": true,
      "homepage": "https://scanaislop.com",
      "languages": {
        "JavaScript": 8928,
        "TypeScript": 1961673
      },
      "pushed_at": "2026-08-01T06:10:35Z",
      "created_at": "2026-03-06T13:05:19Z",
      "owner_type": "Organization",
      "updated_at": "2026-08-02T09:17:48Z",
      "description": "Catch the slop AI coding agents leave in your code: narrative comments, swallowed exceptions, as-any casts, dead code, oversized functions. 50+ rules across 8 languages (TypeScript, JavaScript, Python, Go, Rust, Ruby, PHP). Sub-second, deterministic, no LLM at runtime. MIT-licensed.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": "scanaislop.com",
      "name": "Scan AI Slop — AI Code Quality Gate",
      "type": "Organization",
      "login": "scanaislop",
      "company": null,
      "location": "United Kingdom",
      "followers": 9,
      "avatar_url": "https://avatars.githubusercontent.com/u/277436772?v=4",
      "created_at": "2026-04-19T09:53:48Z",
      "is_verified": null,
      "public_repos": 7,
      "account_age_days": 105
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.14.0",
          "kind": "minor",
          "published_at": "2026-07-23T16:31:49Z"
        },
        {
          "tag": "v0.13.1",
          "kind": "patch",
          "published_at": "2026-06-29T02:04:56Z"
        },
        {
          "tag": "v0.13.0",
          "kind": "minor",
          "published_at": "2026-06-28T23:36:23Z"
        },
        {
          "tag": "v0.12.1",
          "kind": "patch",
          "published_at": "2026-06-20T11:23:00Z"
        },
        {
          "tag": "v0.12.0",
          "kind": "minor",
          "published_at": "2026-06-10T23:15:32Z"
        },
        {
          "tag": "v0.11.0",
          "kind": "minor",
          "published_at": "2026-06-06T14:27:09Z"
        },
        {
          "tag": "v0.10.2",
          "kind": "patch",
          "published_at": "2026-06-02T05:18:05Z"
        },
        {
          "tag": "v0.10.1",
          "kind": "patch",
          "published_at": "2026-05-30T13:31:34Z"
        },
        {
          "tag": "v0.10.0",
          "kind": "minor",
          "published_at": "2026-05-30T09:27:34Z"
        },
        {
          "tag": "v0.9.6",
          "kind": "patch",
          "published_at": "2026-05-30T00:17:43Z"
        },
        {
          "tag": "v0.9.5",
          "kind": "patch",
          "published_at": "2026-05-29T23:42:11Z"
        },
        {
          "tag": "v0.9.4",
          "kind": "patch",
          "published_at": "2026-05-28T00:16:01Z"
        },
        {
          "tag": "v0.9.3",
          "kind": "patch",
          "published_at": "2026-05-22T12:02:03Z"
        },
        {
          "tag": "v0.9.2",
          "kind": "patch",
          "published_at": "2026-05-19T20:59:12Z"
        },
        {
          "tag": "v0.9.1",
          "kind": "patch",
          "published_at": "2026-05-19T18:41:55Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2026-05-16T15:22:38Z"
        },
        {
          "tag": "v0.8.3",
          "kind": "patch",
          "published_at": "2026-05-13T22:00:29Z"
        },
        {
          "tag": "v0.8.2",
          "kind": "patch",
          "published_at": "2026-05-13T20:16:29Z"
        },
        {
          "tag": "v0.8.1",
          "kind": "patch",
          "published_at": "2026-05-10T00:54:48Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-05-09T23:48:18Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2026-05-02T08:32:30Z"
        },
        {
          "tag": "v0.6.2",
          "kind": "patch",
          "published_at": "2026-04-23T17:36:03Z"
        },
        {
          "tag": "v0.6.1",
          "kind": "patch",
          "published_at": "2026-04-21T21:07:10Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2026-04-20T22:36:25Z"
        },
        {
          "tag": "v0.5.1",
          "kind": "patch",
          "published_at": "2026-04-19T23:59:49Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2026-04-18T16:59:10Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2026-04-15T21:50:39Z"
        },
        {
          "tag": "v0.3.2",
          "kind": "patch",
          "published_at": "2026-03-23T21:52:26Z"
        },
        {
          "tag": "v0.3.1",
          "kind": "patch",
          "published_at": "2026-03-23T21:31:54Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2026-03-18T01:03:31Z"
        },
        {
          "tag": "v0.2.1",
          "kind": "patch",
          "published_at": "2026-03-17T22:18:16Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2026-03-12T17:56:29Z"
        },
        {
          "tag": "v0.1.3",
          "kind": "patch",
          "published_at": "2026-03-12T16:06:07Z"
        },
        {
          "tag": "v0.1.2",
          "kind": "patch",
          "published_at": "2026-03-11T03:14:23Z"
        },
        {
          "tag": "v0.1.1",
          "kind": "patch",
          "published_at": "2026-03-11T02:09:26Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2026-03-11T01:34:10Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "5fb46196ef62cc8b4b7907af602c30d70deba929",
          "body": "chore: promote release authentication fix to main",
          "is_bot": false,
          "headline": "Merge pull request #312 from scanaislop/develop",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T22:39:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b0c6d0457d5c463ba161e7a3ab74818bb31f87a",
          "body": "* fix(release): authenticate moving action tag\n\n* docs: add Discord community link\n\n* docs: add Discord badge",
          "is_bot": false,
          "headline": "fix(release): authenticate moving v1 tag (#311)",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T22:33:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca17592cdb1b12aaa9210d8da946e3f6435ddda7",
          "body": "release: promote recovery guards to main",
          "is_bot": false,
          "headline": "Merge pull request #310 from scanaislop/develop",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T19:30:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b4f79dd23563612c02e7e465ca7006b9cd9d736",
          "body": "* fix(release): restrict recovery publish to main\n\n* fix(release): verify recovery commit is promoted",
          "is_bot": false,
          "headline": "fix(release): restrict recovery publish to main (#309)",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T19:15:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "07c92caf0cfaababb9c4baa7c392e0cbf68dc49c",
          "body": "chore: promote npm v12 release recovery",
          "is_bot": false,
          "headline": "Merge pull request #305 from scanaislop/develop",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T18:45:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4617983500fd9cfe916f48a16ee2b8173e9b10e7",
          "body": null,
          "is_bot": false,
          "headline": "fix(release): preserve recovery provenance accuracy (#307)",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T18:41:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "108534b135aa63fc8aab571640ad518a6d54893e",
          "body": null,
          "is_bot": false,
          "headline": "fix(release): access hyphenated input safely (#306)",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T18:02:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8372c43bf2bff675024c0e7d1546a1ae73260e68",
          "body": "* fix(release): add guarded npm v12 recovery\n\n* fix(release): validate recovery release ref",
          "is_bot": false,
          "headline": "fix(release): add guarded npm v12 recovery (#304)",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T17:48:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "503fc6f57335c6e978bcfae82ec6bcf119634f6e",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #294 from scanaislop/develop",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T16:27:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d18bb70bbdbf67e1ffa429100fbaad06cacb76b",
          "body": "fix(scanner): scope language discovery to scan files",
          "is_bot": false,
          "headline": "Merge pull request #302 from scanaislop/fix/pr294-final-codex-review",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T05:25:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff8ca6916aeb39ca60c420630ff7f7f9fda312dc",
          "body": null,
          "is_bot": false,
          "headline": "fix(scanner): scope language discovery to scan files",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T05:16:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bfcc0e481fe9ac5cb6aa2aa329e1dc6e3ecb1591",
          "body": "…ation\n\nfix(scanner): harden project file enumeration",
          "is_bot": false,
          "headline": "Merge pull request #301 from scanaislop/fix/pr294-project-file-enumer…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T04:52:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71d6e651a8ff331b95c7bab2e71efc8cbc60cc05",
          "body": null,
          "is_bot": false,
          "headline": "fix(scanner): harden project file enumeration",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T04:42:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b67c826f1403d9ec04a1791eef581b1ab77776ce",
          "body": "chore: sync main ancestry into develop",
          "is_bot": false,
          "headline": "Merge pull request #300 from scanaislop/chore/sync-main-into-develop",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T04:36:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c91db314a193e4dd334ba1df6b523c715166ce6d",
          "body": null,
          "is_bot": false,
          "headline": "chore: sync main into develop",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T04:30:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3dc7b0330cd5ae0c857adabdf06b13bc7d129c6f",
          "body": "fix(scanner): address final v0.14 review findings",
          "is_bot": false,
          "headline": "Merge pull request #299 from scanaislop/fix/dotfile-exclude-boundaries",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T04:24:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d103c77a7c2c77203cd47ff0cde67f714d6c5548",
          "body": null,
          "is_bot": false,
          "headline": "test(ci): allow Windows help matrix headroom",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T04:16:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31a2cb5924eedce2b3051bf32531271ff5f09f2f",
          "body": null,
          "is_bot": false,
          "headline": "fix(scanner): preserve Unicode escape suffixes",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T04:16:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "509043222c1883695234c82f6a327835a1e6d942",
          "body": null,
          "is_bot": false,
          "headline": "fix(scanner): bound literal dotfile excludes",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T04:09:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b0a4cc51a315540d32cc4952345b8d5000c55db",
          "body": "fix(release): prepare npm v12 and trusted publishing",
          "is_bot": false,
          "headline": "Merge pull request #298 from scanaislop/chore/npm-v12-trusted-publishing",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T04:05:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8600b6e38b9bc9080f9b2f9baff4a367589f9fc",
          "body": null,
          "is_bot": false,
          "headline": "fix(release): prepare npm v12 and trusted publishing",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T03:58:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3dfcecf7d2233cbc314269530f4109e4482f355",
          "body": "fix(scanner): bound exclude pattern normalization",
          "is_bot": false,
          "headline": "Merge pull request #296 from scanaislop/fix/pr294-codeql-safe-excludes",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T03:40:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7c7672e0486bc512ffe44bbf9b0aae185be77ea",
          "body": null,
          "is_bot": false,
          "headline": "fix(scanner): precompile bounded glob matchers",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T03:35:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d291ef2746736b322adf51ae823d4284aad9f327",
          "body": null,
          "is_bot": false,
          "headline": "fix(scanner): avoid polynomial exclude normalization",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T03:25:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "07dafd5d1d39422989b9b731d53c59811dd6ad90",
          "body": "fix(scanner): harden declaration and dot-directory exclusions",
          "is_bot": false,
          "headline": "Merge pull request #295 from scanaislop/fix/pr294-review-feedback",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T00:27:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af946c77dce44282da4a8c4d412262c8e3f32b2b",
          "body": null,
          "is_bot": false,
          "headline": "fix(scanner): harden declaration and dot-directory exclusions",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-23T00:08:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "30a5aa12d957392d4310199efd73bf252a587e3c",
          "body": "chore(release): v0.14.0",
          "is_bot": false,
          "headline": "Merge pull request #281 from scanaislop/chore/release-v0.14.0",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T22:39:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70a739298e3ea60e5312bb6a6d4a57e8778ae70d",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into chore/release-v0.14.0",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T22:30:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "72c2b035c8df2606b6418074dc87534a268690e5",
          "body": "…op/tsdown-0.22.9\n\nchore(deps-dev): bump tsdown from 0.20.3 to 0.22.13",
          "is_bot": false,
          "headline": "Merge pull request #287 from scanaislop/dependabot/npm_and_yarn/devel…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T22:02:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b59a37a2c3b165e85dbcab5ecb112ec6871df169",
          "body": "Bumps [tsdown](https://github.com/rolldown/tsdown) from 0.20.3 to 0.22.13.\n- [Release notes](https://github.com/rolldown/tsdown/releases)\n- [Commits](https://github.com/rolldown/tsdown/compare/v0.20.3...v0.22.13)\n\n---\nupdated-dependencies:\n- dependency-name: tsdown\n  dependency-version: 0.22.9\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps-dev): bump tsdown from 0.20.3 to 0.22.13",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-22T21:58:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "303bbbb830ead6e54badf3d72748078dd9baea7e",
          "body": "…op/vite-8.1.5\n\nchore(deps-dev): bump vite from 7.3.5 to 8.1.5",
          "is_bot": false,
          "headline": "Merge pull request #288 from scanaislop/dependabot/npm_and_yarn/devel…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T21:56:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e780bbf38469528449fb6501b8a6f0d5087769d7",
          "body": "Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.3.5 to 8.1.5.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v8.1.5/packages/v\n[…]\nendencies:\n- dependency-name: vite\n  dependency-version: 8.1.5\n  dependency-type: direct:development\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps-dev): bump vite from 7.3.5 to 8.1.5",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-22T21:51:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0cedd077995909a96d3094edb72c5748aabeb6c8",
          "body": "…op/clack/prompts-1.7.0\n\nchore(deps): bump @clack/prompts from 1.2.0 to 1.7.0",
          "is_bot": false,
          "headline": "Merge pull request #290 from scanaislop/dependabot/npm_and_yarn/devel…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T21:50:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "496fca87bfd1a256b37dfd7335021f464e5d4ce0",
          "body": "Bumps [@clack/prompts](https://github.com/bombshell-dev/clack/tree/HEAD/packages/prompts) from 1.2.0 to 1.7.0.\n- [Release notes](https://github.com/bombshell-dev/clack/releases)\n- [Changelog](https://github.com/bombshell-dev/clack/blob/main/packages/prompts/CHANGELOG.md)\n- [Commits](https://github.c\n[…]\n- dependency-name: \"@clack/prompts\"\n  dependency-version: 1.7.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump @clack/prompts from 1.2.0 to 1.7.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-22T21:44:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "222e93d61c5e841c4d507d50784a5c41258ec050",
          "body": "…op/oxlint-1.74.0\n\nchore(deps): bump oxlint from 1.72.0 to 1.74.0",
          "is_bot": false,
          "headline": "Merge pull request #291 from scanaislop/dependabot/npm_and_yarn/devel…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T21:43:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2282fd7c772f6bf89675e140c58808ccc53a87d6",
          "body": "Bumps [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) from 1.72.0 to 1.74.0.\n- [Release notes](https://github.com/oxc-project/oxc/releases)\n- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md)\n- [Commits](https://github.com/oxc-project/oxc/commits/oxl\n[…]\ndencies:\n- dependency-name: oxlint\n  dependency-version: 1.74.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump oxlint from 1.72.0 to 1.74.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-22T21:38:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "91a76da71dd8611ae326a57143d154f2a67addca",
          "body": "…op/biomejs/biome-2.5.4\n\nchore(deps): bump @biomejs/biome from 2.5.2 to 2.5.4",
          "is_bot": false,
          "headline": "Merge pull request #289 from scanaislop/dependabot/npm_and_yarn/devel…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T21:38:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41cc0d381de5f92c440722d1bae22c2a2d98a025",
          "body": "Bumps [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) from 2.5.2 to 2.5.4.\n- [Release notes](https://github.com/biomejs/biome/releases)\n- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md)\n- [Commits](https://github.com/b\n[…]\n- dependency-name: \"@biomejs/biome\"\n  dependency-version: 2.5.4\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump @biomejs/biome from 2.5.2 to 2.5.4",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-22T21:31:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d708ca7bc020e8bcb1589f9e8636c13704c94dd0",
          "body": "…elop/actions/setup-node-7\n\nchore(deps): bump actions/setup-node from 6 to 7",
          "is_bot": false,
          "headline": "Merge pull request #286 from scanaislop/dependabot/github_actions/dev…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T21:30:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70eee275360604e3a7fbe5f81089f1e9a3e1856b",
          "body": "Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.\n- [Release notes](https://github.com/actions/setup-node/releases)\n- [Commits](https://github.com/actions/setup-node/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-node\n  dependency-version: '7'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump actions/setup-node from 6 to 7",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-22T21:04:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9803ebff6f419bd79bdc43c495da466628026eaf",
          "body": "feat(ai-slop): improve import accuracy and flag tautological tests",
          "is_bot": false,
          "headline": "Merge pull request #292 from scanaislop/agent/improve-scanner-accuracy",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T15:55:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e552610eb7c234559c2727209405591c9336a19",
          "body": null,
          "is_bot": false,
          "headline": "test(hallucinated-import): use ASCII punctuation",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T15:35:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "292c39d835f6ed79381ebee7b5e8392a7a8908fb",
          "body": null,
          "is_bot": false,
          "headline": "fix(scanner): scope coverage to include patterns",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T15:35:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63d5c6075de555687b59b26b8375afdcc36082c2",
          "body": null,
          "is_bot": false,
          "headline": "fix(scanner): close review boundary gaps",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T15:06:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "056e7fe300026d1418e202314a4d6d9d3757f529",
          "body": null,
          "is_bot": false,
          "headline": "fix(scanner): harden scope and detector boundaries",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T14:20:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a4df0ad44df4b0ec33999bbc98a424749bb38e02",
          "body": null,
          "is_bot": false,
          "headline": "feat(ai-slop): detect tautological test assertions",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T11:54:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d0bf995225ed827a3ce9629c4ef74a0b9bffa05",
          "body": null,
          "is_bot": false,
          "headline": "fix(hallucinated-import): resolve configured and local modules",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-22T11:54:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed9073deb718d654a7457bf0085f69922d3bd87b",
          "body": null,
          "is_bot": false,
          "headline": "chore(release): v0.14.0",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T11:11:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8341cba69510ccad77fc3f8cc076999bd08df53",
          "body": null,
          "is_bot": false,
          "headline": "fix(agent): stop after provider failures",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T11:11:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "566f06aac519b4166fed49ce984390ccd57bf873",
          "body": "…import\n\nfeat(hallucinated-import): uv-workspace awareness",
          "is_bot": false,
          "headline": "Merge pull request #270 from mtschoen/feat/uv-workspace-hallucinated-…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T10:32:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2856648e922f538213e167f7879aaf54fb0b9c08",
          "body": null,
          "is_bot": false,
          "headline": "test(hallucinated-import): use normalized diagnostic paths",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T10:29:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "add7137fc52a0f343ba9d643ee6e859ed807731b",
          "body": "Use structural TOML parsing, bounded uv-compatible glob matching, strict member admission, contained manifest reads, and per-project dependency scoping. Add focused regressions for malformed metadata, exclusions, symlinks, traversal budgets, and platform path semantics.",
          "is_bot": false,
          "headline": "fix(hallucinated-import): harden uv workspace resolution",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T10:24:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "59ba64e9377f9deec29d68c8bb4d447d8b97ccea",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into feat/uv-workspace-hallucinated-import",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T10:24:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6eefffdd68e89470a4d433e1bc3dfe3607b74cda",
          "body": "fix(complexity): ignore braces inside strings, comments, and regexes when measuring functions",
          "is_bot": false,
          "headline": "Merge pull request #271 from mtschoen/fix/complexity-brace-masking",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T09:50:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "58db1c52e4e510d1be1e100d6338960e63725353",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into fix/complexity-brace-masking",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T09:46:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c9b27a693ef0fb63d7a7a323de30aad33fa45c38",
          "body": "…op/zod-4.4.3\n\nchore(deps): bump zod from 4.3.6 to 4.4.3",
          "is_bot": false,
          "headline": "Merge pull request #277 from scanaislop/dependabot/npm_and_yarn/devel…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T08:35:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a03f601074dac34ed6e8566215e00920e5a3bd81",
          "body": "Bumps [zod](https://github.com/colinhacks/zod) from 4.3.6 to 4.4.3.\n- [Release notes](https://github.com/colinhacks/zod/releases)\n- [Commits](https://github.com/colinhacks/zod/compare/v4.3.6...v4.4.3)\n\n---\nupdated-dependencies:\n- dependency-name: zod\n  dependency-version: 4.4.3\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump zod from 4.3.6 to 4.4.3",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-14T08:30:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5d1ed04435f37253421c70ef38469dd53f992e2",
          "body": "…op/expo-doctor-1.20.0\n\nchore(deps): bump expo-doctor from 1.19.10 to 1.20.0",
          "is_bot": false,
          "headline": "Merge pull request #278 from scanaislop/dependabot/npm_and_yarn/devel…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T08:28:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cfa4dd93bb46009935173db6bad8aad6e3c908d9",
          "body": "…or-1.20.0",
          "is_bot": false,
          "headline": "Merge branch 'develop' into dependabot/npm_and_yarn/develop/expo-doct…",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T08:22:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91eb2314625c1826560df3576079b48cdc7e11a8",
          "body": "docs: add CLAUDE.md/GEMINI.md pointers to AGENTS.md (optional)",
          "is_bot": false,
          "headline": "Merge pull request #272 from mtschoen/docs/claude-gemini-agents-pointers",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T08:09:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7b862e0f18ccc1fb0977f22ddaf31c5fb6ff4c26",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into docs/claude-gemini-agents-pointers",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T08:00:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c2ed3a8656ef008f3e473e464ca379ce9eeaf358",
          "body": "Bumps [expo-doctor](https://github.com/expo/expo/tree/HEAD/packages/expo-doctor) from 1.19.10 to 1.20.0.\n- [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-doctor)\n\n---\nupdated-dependencies:\n- dependency-name: expo-doctor\n  dependency-version: 1.20.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump expo-doctor from 1.19.10 to 1.20.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-14T05:40:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "72348ba6e5940a553e542fcda03e3553a7b603d9",
          "body": "…op/vitest-4.1.9\n\nchore(deps-dev): bump vitest from 4.1.8 to 4.1.9",
          "is_bot": false,
          "headline": "Merge pull request #267 from scanaislop/dependabot/npm_and_yarn/devel…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T05:38:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e060748dd2fef69745ba83cb715850cb20061354",
          "body": null,
          "is_bot": false,
          "headline": "chore(deps-dev): bump vitest from 4.1.8 to 4.1.10",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T05:30:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c93059305b52e7aa49025fa33fbc32adee57ddfc",
          "body": "Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 4 to 6.\n- [Release notes](https://github.com/pnpm/action-setup/releases)\n- [Commits](https://github.com/pnpm/action-setup/compare/v4...v6)\n\n---\nupdated-dependencies:\n- dependency-name: pnpm/action-setup\n  dependency-version: '6'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump pnpm/action-setup from 4 to 6",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-14T05:06:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f83bda2ddf510d6e46fb171764d87a75c7f401c",
          "body": null,
          "is_bot": false,
          "headline": "fix(windows): harden namespaced path handling",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T03:51:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33eb9ec9554c1dfd2e54d6c383c77023f92ef2ff",
          "body": null,
          "is_bot": false,
          "headline": "fix(windows): normalize external tool diagnostics",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T03:46:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "29510a8f07239135b57359461213eebdabe44897",
          "body": null,
          "is_bot": false,
          "headline": "fix(windows): normalize remaining diagnostic paths",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T03:40:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "191c2017e5e0eb9c3943511c0b730e830bd2fc15",
          "body": "…ration\n\n# Conflicts:\n#\tsrc/engines/lint/typecheck.ts\n#\tsrc/utils/source-files.ts",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/develop' into codex/pr-261-integ…",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T03:31:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f85f2fef2fdf96c5bf177c70133f3eb77dbdab91",
          "body": "fix(typecheck): honor .gitignore when discovering tsconfigs",
          "is_bot": false,
          "headline": "Merge pull request #260 from mtschoen/fix/typecheck-gitignore",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T03:25:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9cc20c1e11cada545e5cecad21aeb1a43634fa94",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into fix/typecheck-gitignore",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T03:22:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "593aaf7edbc36a1a623caa65688ac6af720c5f22",
          "body": "fix(tooling): prefer a system-installed ruff/golangci-lint over the vendored copy",
          "is_bot": false,
          "headline": "Merge pull request #259 from mtschoen/fix/prefer-system-tool",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T03:20:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "161caf278f74e516e0f83ee1cf19864c587485cb",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into fix/prefer-system-tool",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T03:18:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "462ba165848c2d1e31bc408aed0d20a5fbd87167",
          "body": "…rces\n\nfix(discover): detect languages from source files, not just manifests",
          "is_bot": false,
          "headline": "Merge pull request #258 from mtschoen/fix/discover-languages-from-sou…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T03:16:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "696a30ab318d5bcd55a92e5206676661949882db",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into fix/discover-languages-from-sources",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T03:13:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04614e6b089279ebef1e7fa33838ddbbfd57baeb",
          "body": "…-exports\n\nfix(ai-slop): remove unused type exports",
          "is_bot": false,
          "headline": "Merge pull request #280 from scanaislop/codex/fix-develop-unused-type…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T03:10:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "58f1a5cf6d315a2ec6a46b06aa1e63abb62f5501",
          "body": null,
          "is_bot": false,
          "headline": "fix(ai-slop): remove unused type exports",
          "author_name": "Kehinde Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T03:08:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f2da329f1307eba37f0335459be77f9a0c215d17",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into fix/discover-languages-from-sources",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-14T03:02:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c68c32c37a19a7715a35663356952ae072ea972",
          "body": "PR #271 (fcce07a) changed findFunctionEnd to take both raw `lines` and\nmasked `codeLines`, routing the brace matcher onto masked lines but\nleaving the Python path on raw `lines`. findPythonFunctionEnd is\nindentation-based with no comment/string handling, so a comment or a\nline of triple-quoted strin\n[…]\nid-body, and a\nmulti-line triple-quoted string whose interior content sits at column\n0 while the closing delimiter stays indented with the body.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(complexity): keep Python end detection on masked lines",
          "author_name": "Matt Schoen",
          "author_login": "mtschoen",
          "committed_at": "2026-07-07T01:17:46Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "56638da9738c0d9fdbfa2a30d055013815468f65",
          "body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add CLAUDE.md/GEMINI.md pointers to canonical AGENTS.md",
          "author_name": "Matt Schoen",
          "author_login": "mtschoen",
          "committed_at": "2026-07-06T21:25:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "fcce07aac147a34f860dbe9551a58860f7ca459e",
          "body": "…when measuring functions\n\nThe brace matcher behind function-length/nesting measurement counted every\n`{`/`}` literally. analyzeFunctions masked comments only, so a brace inside a\nstring literal (`\"{\"`) or a regex (`/^}\\s*{/`) desynced the count and made a\nshort function appear to run to end-of-file\n[…]\nl suite introduces no new failures\n(remaining failures are the pre-existing Windows path-separator issues that\nPR #261 addresses).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(complexity): ignore braces inside strings, comments, and regexes …",
          "author_name": "Matt Schoen",
          "author_login": "mtschoen",
          "committed_at": "2026-07-06T21:25:56Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a3b78049d142d060a91c6e7282d833fff6ffef0f",
          "body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "style: replace em-dash in comment per writing conventions",
          "author_name": "Matt Schoen",
          "author_login": "mtschoen",
          "committed_at": "2026-07-04T22:05:02Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c906374407348f89c669417956336904b538655f",
          "body": "Two fixes from PR review:\n\n- Files under a [tool.uv.workspace].exclude directory no longer receive\n  the workspace-shared dependency set. An excluded project is not\n  installed into the shared .venv, so its files are checked against\n  their own manifest scope only.\n- An ancestor uv workspace now cou\n[…]\n`) keeps\n  ai-slop/hallucinated-import enabled and applies the shared workspace\n  dependency set instead of silently skipping every Python file.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(hallucinated-import): scope uv workspace deps correctly",
          "author_name": "Matt Schoen",
          "author_login": "mtschoen",
          "committed_at": "2026-07-04T21:57:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d5265826c182358bb459586ab032306858d55029",
          "body": "Review feedback on #270: `exclude` globs remove directories that the\n`members` globs matched, and uv does not install an excluded project into\nthe shared .venv — so an excluded project's dependencies and package name\nmust not vouch for imports elsewhere in the workspace. Expand `exclude`\nwith the same limited glob support as `members` and skip matching member\ndirectories when building the workspace-shared dependency set.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(hallucinated-import): honor [tool.uv.workspace].exclude",
          "author_name": "Matt Schoen",
          "author_login": "mtschoen",
          "committed_at": "2026-07-04T21:02:39Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "329af240004c9499c5cdd13f3104bcd41cd9e683",
          "body": "In a uv workspace (a root pyproject with [tool.uv.workspace] and per-package\npyproject.toml files under e.g. packages/<name>/), all members resolve to one\nlockfile and one .venv. Every member's dependencies are installed together, so\nany file in the tree may import a sibling member package OR a dep \n[…]\nagainst the shared venv, root-declared deps, comment-laden dependency\narrays, and confirms non-workspace nested-manifest isolation is unchanged.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(hallucinated-import): uv-workspace awareness",
          "author_name": "Matt Schoen",
          "author_login": "mtschoen",
          "committed_at": "2026-07-04T20:54:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "58048e66367fddd0374f39f98cf0480f88ab9b0c",
          "body": "…op/oxlint-1.72.0\n\nchore(deps): bump oxlint from 1.71.0 to 1.72.0",
          "is_bot": false,
          "headline": "Merge pull request #265 from scanaislop/dependabot/npm_and_yarn/devel…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-04T12:46:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "360603e638cdc8691afa60e41183ababed204e32",
          "body": "Bumps [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) from 1.71.0 to 1.72.0.\n- [Release notes](https://github.com/oxc-project/oxc/releases)\n- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md)\n- [Commits](https://github.com/oxc-project/oxc/commits/oxl\n[…]\ndencies:\n- dependency-name: oxlint\n  dependency-version: 1.72.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump oxlint from 1.71.0 to 1.72.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-04T12:44:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e5eb2f199dd77b352b8200cb4e3325e33db8270d",
          "body": "…op/yaml-2.9.0\n\nchore(deps): bump yaml from 2.8.3 to 2.9.0",
          "is_bot": false,
          "headline": "Merge pull request #266 from scanaislop/dependabot/npm_and_yarn/devel…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-04T12:42:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9f2a06e677122a27529d570b65a413a47b812af",
          "body": "Bumps [yaml](https://github.com/eemeli/yaml) from 2.8.3 to 2.9.0.\n- [Release notes](https://github.com/eemeli/yaml/releases)\n- [Commits](https://github.com/eemeli/yaml/compare/v2.8.3...v2.9.0)\n\n---\nupdated-dependencies:\n- dependency-name: yaml\n  dependency-version: 2.9.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump yaml from 2.8.3 to 2.9.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-04T12:40:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c2da34a35eada30ff9561914d49eea0d6da32c9",
          "body": "…op/adm-zip-0.5.18\n\nchore(deps): bump adm-zip from 0.5.16 to 0.5.18",
          "is_bot": false,
          "headline": "Merge pull request #268 from scanaislop/dependabot/npm_and_yarn/devel…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-04T12:38:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "93d3e4e30de432a498034088f5efa01ae2f55dab",
          "body": "….5.18",
          "is_bot": false,
          "headline": "Merge branch 'develop' into dependabot/npm_and_yarn/develop/adm-zip-0…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-04T12:37:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d2cc8538d01a37d1b4e0760d4446af167709cdb",
          "body": "…op/biomejs/biome-2.5.2\n\nchore(deps): bump @biomejs/biome from 2.5.1 to 2.5.2",
          "is_bot": false,
          "headline": "Merge pull request #269 from scanaislop/dependabot/npm_and_yarn/devel…",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-07-04T12:36:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aa300a6b907cff286f4e423e32edb82945854cd1",
          "body": "Bumps [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) from 2.5.1 to 2.5.2.\n- [Release notes](https://github.com/biomejs/biome/releases)\n- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md)\n- [Commits](https://github.com/b\n[…]\n- dependency-name: \"@biomejs/biome\"\n  dependency-version: 2.5.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump @biomejs/biome from 2.5.1 to 2.5.2",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-04T06:03:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5ca2387646dca9cb97d0b2fa6a316aff77c1bd62",
          "body": "Bumps [adm-zip](https://github.com/cthackers/adm-zip) from 0.5.16 to 0.5.18.\n- [Release notes](https://github.com/cthackers/adm-zip/releases)\n- [Changelog](https://github.com/cthackers/adm-zip/blob/master/history.md)\n- [Commits](https://github.com/cthackers/adm-zip/compare/v0.5.16...v0.5.18)\n\n---\nup\n[…]\nencies:\n- dependency-name: adm-zip\n  dependency-version: 0.5.18\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump adm-zip from 0.5.16 to 0.5.18",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-04T06:03:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b54336588ca93af3c8b173ab558635981eb91c70",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into fix/windows-posix-paths",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-06-29T21:00:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ac45cf39ad2b61b4802156c386d65b7596a7fd1",
          "body": "docs(agents): add cross-platform script + writing conventions",
          "is_bot": false,
          "headline": "Merge pull request #262 from mtschoen/docs/cross-platform-conventions",
          "author_name": "Kenny Olawuwo",
          "author_login": "heavykenny",
          "committed_at": "2026-06-29T20:56:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aa7e278123d429d5ef07b525bc19b833de4e0d73",
          "body": "…matrix\n\nAdding the `os` dimension to the Build & test matrix renamed the jobs to\n\"Build & test (ubuntu-latest, 22)\" etc., which breaks branch protection: required\nchecks match by exact string, so \"Build & test (22)\" / \"Build & test (24)\" would\nhang as \"Expected\" and block every PR (and force a coor\n[…]\nent: it used the bare word \"TEMP \" which the\nai-slop/todo-stub marker detector flags (markerKeywords include TEMP) - now `%TEMP%`.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci(windows): keep stable required-check names via a gate over the OS …",
          "author_name": "Matt Schoen",
          "author_login": "mtschoen",
          "committed_at": "2026-06-29T12:43:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3a88fc4f317c8937cf9845ee36f4e271df7381ec",
          "body": "…3 names)\n\nMirror of the schoen/main fix. readAgentRoot returned the long-form repo root\n(git expands 8.3 short names) while the test's realpathSync(root) kept the short\nform the CI runner's TEMP arrives in (C:\\Users\\RUNNER~1\\...). fs.realpathSync.native\n(GetFinalPathNameByHandle) expands short name\n[…]\n identically.\n\nReproduced locally via an 8.3 short-path TEMP, then confirmed green. Full suite\nvia PowerShell: 1364 pass / 2 skip.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(windows): canonicalize agent git root via realpathSync.native (8.…",
          "author_name": "Matt Schoen",
          "author_login": "mtschoen",
          "committed_at": "2026-06-29T12:20:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "baa32ef69f4ca3ffa6b2e61220a7ebbf8ff1aa84",
          "body": "Same fix as schoen/main. listProjectFiles fell back to spawning Unix `find`\nwhen `git ls-files` is unavailable (every non-git directory, incl. all test temp\ndirs). On Windows `find` resolves to C:\\Windows\\System32\\find.exe (a string\nsearch), so the fallback returned nothing and every detector got an\n[…]\n\n\nVerified via PowerShell (no git-bash on PATH): 1364 pass / 2 skip, self-scan 97\n(2 pre-existing knip/types warnings, unrelated).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(windows): replace Unix `find` fallback with a portable Node walk",
          "author_name": "Matt Schoen",
          "author_login": "mtschoen",
          "committed_at": "2026-06-29T12:09:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c15712af941a2b4c66f55384996e8b14d3c0b4d4",
          "body": "…ngines\n\nMirrors the schoen/main fix for the engines that exist on this upstream-based\nbranch (the C#/C++ engines - dotnet, dotnet-format, cppcheck - are not present\nhere). Each still built a Diagnostic.filePath (or a baseline/exclusion-match\npath) with a bare path.relative, emitting backslashes on \n[…]\nsuite: 1364 pass / 2 skip. (Two pre-existing knip/types warnings in\nhallucinated-imports-manifest.ts are unrelated and untouched.)\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(windows): posixify Diagnostic.filePath in remaining lint/format e…",
          "author_name": "Matt Schoen",
          "author_login": "mtschoen",
          "committed_at": "2026-06-29T10:41:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        }
      ],
      "releases_count": 36,
      "commits_last_year": 322,
      "latest_release_at": "2026-07-23T16:31:49Z",
      "latest_release_tag": "v0.14.0",
      "releases_from_tags": false,
      "days_since_last_push": 1,
      "active_weeks_last_year": 19,
      "days_since_latest_release": 10,
      "mean_days_between_releases": 6.1
    },
    "artifacts": {
      "collected": true,
      "structure": [],
      "declarations": [
        {
          "name": "aislop",
          "path": "package.json",
          "tokens": [
            "npm.bin",
            "npm.entry"
          ],
          "ecosystem": "npm"
        }
      ]
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "readme_badges": {
        "hosts": [
          "github.com",
          "shields.io"
        ],
        "total": 8,
        "header": 8,
        "collected": true,
        "has_inspect_badge": false
      },
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 87,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "aislop",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "aislop",
            "ai-slop",
            "code-quality",
            "linter",
            "formatter",
            "cli",
            "ai",
            "copilot",
            "code-review",
            "static-analysis",
            "typescript",
            "javascript",
            "python",
            "go",
            "rust",
            "ruby",
            "php"
          ],
          "ecosystem": "npm",
          "categories": [],
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/aislop",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "0.14.0",
          "repository_url": "https://github.com/scanaislop/aislop",
          "versions_count": 36,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 22077,
          "first_published_at": "2026-03-11T01:34:48.856000Z",
          "latest_published_at": "2026-07-23T20:55:05.293000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 10
        }
      ]
    },
    "popularity": {
      "forks": 24,
      "stars": 530,
      "watchers": 2,
      "fork_history": {
        "days": [
          {
            "date": "2026-03-12",
            "count": 1
          },
          {
            "date": "2026-04-20",
            "count": 1
          },
          {
            "date": "2026-05-19",
            "count": 1
          },
          {
            "date": "2026-05-27",
            "count": 1
          },
          {
            "date": "2026-05-29",
            "count": 3
          },
          {
            "date": "2026-05-30",
            "count": 4
          },
          {
            "date": "2026-05-31",
            "count": 1
          },
          {
            "date": "2026-06-02",
            "count": 1
          },
          {
            "date": "2026-06-08",
            "count": 1
          },
          {
            "date": "2026-06-10",
            "count": 1
          },
          {
            "date": "2026-06-12",
            "count": 1
          },
          {
            "date": "2026-06-13",
            "count": 1
          },
          {
            "date": "2026-06-24",
            "count": 1
          },
          {
            "date": "2026-06-27",
            "count": 1
          },
          {
            "date": "2026-07-11",
            "count": 1
          },
          {
            "date": "2026-07-12",
            "count": 1
          },
          {
            "date": "2026-07-26",
            "count": 1
          },
          {
            "date": "2026-07-27",
            "count": 1
          },
          {
            "date": "2026-07-30",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 24,
        "total_forks": 24
      },
      "star_history": null,
      "open_issues_and_prs": 19
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "editors/vscode/tsconfig.json",
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 54193,
      "source_files_sampled": 432,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        "AGENTS.md",
        "CLAUDE.md",
        "GEMINI.md"
      ],
      "agent_instruction_max_bytes": 7026
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [
          {
            "name": "adm-zip",
            "direct": true,
            "version": "0.5.18",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-xcpc-8h2w-3j85"
            ],
            "fixed_version": "0.6.0",
            "advisory_count": 1,
            "oldest_advisory_days": 23
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 1
        },
        "advisory_count": 1,
        "affected_count": 1,
        "assessed_count": 243,
        "malicious_count": 0,
        "assessed_package": "npm:aislop@0.14.0",
        "unassessed_count": 0,
        "direct_affected_count": 1
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@biomejs/biome",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.5.4"
        },
        {
          "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": "adm-zip",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.5.18"
        },
        {
          "name": "commander",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^14.0.3"
        },
        {
          "name": "expo-doctor",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.20.0"
        },
        {
          "name": "ink",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.8.0"
        },
        {
          "name": "ink-select-input",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.2.0"
        },
        {
          "name": "knip",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.85.0"
        },
        {
          "name": "micromatch",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.0.8"
        },
        {
          "name": "oxlint",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.74.0"
        },
        {
          "name": "picocolors",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.1"
        },
        {
          "name": "react",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.2.7"
        },
        {
          "name": "smol-toml",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.7.0"
        },
        {
          "name": "tar",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.5.19"
        },
        {
          "name": "typescript",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.9.3"
        },
        {
          "name": "wcwidth",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.1"
        },
        {
          "name": "yaml",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.9.0"
        },
        {
          "name": "zod",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.4.3"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@biomejs/biome",
            "direct": true,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@clack/prompts",
            "direct": true,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@modelcontextprotocol/sdk",
            "direct": true,
            "version": "1.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "adm-zip",
            "direct": true,
            "version": "0.5.18",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": true,
            "version": "14.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "expo-doctor",
            "direct": true,
            "version": "1.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "ink",
            "direct": true,
            "version": "6.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "ink-select-input",
            "direct": true,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "knip",
            "direct": true,
            "version": "5.88.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromatch",
            "direct": true,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "oxlint",
            "direct": true,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": true,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "react",
            "direct": true,
            "version": "19.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "smol-toml",
            "direct": true,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "tar",
            "direct": true,
            "version": "7.5.19",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": true,
            "version": "5.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": true,
            "version": "^5.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "wcwidth",
            "direct": true,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": true,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": true,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@alcalzone/ansi-tokenize",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-darwin-arm64",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-darwin-x64",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-arm64",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-arm64-musl",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-x64",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-x64-musl",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-win32-arm64",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-win32-x64",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@clack/core",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.11.2",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.11.2",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@hono/node-server",
            "direct": false,
            "version": "1.19.14",
            "ecosystem": "npm"
          },
          {
            "name": "@isaacs/fs-minipass",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.scandir",
            "direct": false,
            "version": "2.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.stat",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.walk",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.115.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.139.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.140.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-android-arm-eabi",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-android-arm64",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-darwin-arm64",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-darwin-x64",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-freebsd-x64",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-arm-musleabihf",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-arm64-gnu",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-arm64-musl",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-riscv64-gnu",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-riscv64-musl",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-s390x-gnu",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-x64-gnu",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-x64-musl",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-openharmony-arm64",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-wasm32-wasi",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-win32-arm64-msvc",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-win32-x64-msvc",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-android-arm-eabi",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-android-arm64",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-darwin-arm64",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-darwin-x64",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-freebsd-x64",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-arm-musleabihf",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-riscv64-gnu",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-riscv64-musl",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-x64-musl",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-openharmony-arm64",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-win32-ia32-msvc",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "npm"
          },
          {
            "name": "@quansync/fs",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/braces",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chai",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/deep-eql",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/micromatch",
            "direct": false,
            "version": "4.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "25.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "^20.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react",
            "direct": false,
            "version": "19.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "@types/vscode",
            "direct": false,
            "version": "^1.85.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-darwin-arm64",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-darwin-x64",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-freebsd-x64",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-linux-arm-gnu",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-linux-arm-musl",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-linux-arm64-gnu",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-linux-arm64-musl",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-linux-x64-gnu",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-linux-x64-musl",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-win32-arm64",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-win32-x64",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-darwin-arm64",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-darwin-x64",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-freebsd-x64",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-linux-arm-gnu",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-linux-arm-musl",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-linux-arm64-gnu",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-linux-arm64-musl",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-linux-x64-gnu",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-linux-x64-musl",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-win32-arm64",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-win32-x64",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-toolchain/types",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "accepts",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "8.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv-formats",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "ansis",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "auto-bind",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "body-parser",
            "direct": false,
            "version": "2.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "cac",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bound",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "5.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "chownr",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-boxes",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-cursor",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-truncate",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "clone",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "code-excerpt",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "content-disposition",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "content-type",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "convert-to-spaces",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cookie",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "cookie-signature",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "cors",
            "direct": false,
            "version": "2.8.6",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "csstype",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "defaults",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "defu",
            "direct": false,
            "version": "6.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "depd",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "dts-resolver",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ee-first",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "10.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "empathic",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "encodeurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "environment",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-toolkit",
            "direct": false,
            "version": "1.47.0",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "escape-html",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "etag",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "eventsource",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "eventsource-parser",
            "direct": false,
            "version": "3.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "express",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "express-rate-limit",
            "direct": false,
            "version": "8.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-glob",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-string-truncated-width",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-string-width",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-wrap-ansi",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "fastq",
            "direct": false,
            "version": "1.20.1",
            "ecosystem": "npm"
          },
          {
            "name": "fd-package-json",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "figures",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "finalhandler",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "formatly",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "forwarded",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "fresh",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-east-asian-width",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-tsconfig",
            "direct": false,
            "version": "5.0.0-beta.5",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "hono",
            "direct": false,
            "version": "4.12.26",
            "ecosystem": "npm"
          },
          {
            "name": "hookable",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "http-errors",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "import-without-cache",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "indent-string",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ink-testing-library",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ip-address",
            "direct": false,
            "version": "10.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "ipaddr.js",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-in-ci",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-promise",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-unicode-supported",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jiti",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jose",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-typed",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-android-arm64",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-arm64",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-x64",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-freebsd-x64",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-gnu",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-musl",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-gnu",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-musl",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-arm64-msvc",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-x64-msvc",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "media-typer",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge-descriptors",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge2",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "minizlib",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.16",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "object-assign",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "on-finished",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "oxc-resolver",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "parseurl",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "patch-console",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "8.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "pkce-challenge",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.22",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-addr",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "qs",
            "direct": false,
            "version": "6.15.2",
            "ecosystem": "npm"
          },
          {
            "name": "quansync",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "queue-microtask",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "range-parser",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "raw-body",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "react-reconciler",
            "direct": false,
            "version": "0.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "require-from-string",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-pkg-maps",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "restore-cursor",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "reusify",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown-plugin-dts",
            "direct": false,
            "version": "0.27.13",
            "ecosystem": "npm"
          },
          {
            "name": "router",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "run-parallel",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "scheduler",
            "direct": false,
            "version": "0.27.0",
            "ecosystem": "npm"
          },
          {
            "name": "send",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "serve-static",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "setprototypeof",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-command",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-regex",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-list",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-map",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-weakmap",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "siginfo",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "sisteransi",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "slice-ansi",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "stack-utils",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "stackback",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "statuses",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "8.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "tagged-tag",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "terminal-size",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tinybench",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.15",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tinyrainbow",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "to-rotated",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "toidentifier",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tree-kill",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "tsdown",
            "direct": false,
            "version": "0.22.13",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "5.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-is",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "unbash",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "unconfig-core",
            "direct": false,
            "version": "7.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "7.19.2",
            "ecosystem": "npm"
          },
          {
            "name": "unpipe",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unrun",
            "direct": false,
            "version": "0.2.29",
            "ecosystem": "npm"
          },
          {
            "name": "vary",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "verkit",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "walk-up-path",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "why-is-node-running",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "widest-line",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "9.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "8.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "yallist",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "yoga-layout",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "yuku-ast",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "yuku-codegen",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "yuku-parser",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "zod-to-json-schema",
            "direct": false,
            "version": "3.25.2",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 427,
        "direct_count": 20,
        "indirect_count": 407
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 11,
        "merged_prs": 271,
        "open_issues": 8,
        "closed_ratio": 0.556,
        "closed_issues": 10,
        "closed_unmerged_prs": 14
      },
      "bus_factor": 1,
      "bot_contributors": 4,
      "top_contributors": [
        {
          "type": "User",
          "login": "heavykenny",
          "commits": 273,
          "avatar_url": "https://avatars.githubusercontent.com/u/32848806?v=4"
        },
        {
          "type": "User",
          "login": "mtschoen",
          "commits": 21,
          "avatar_url": "https://avatars.githubusercontent.com/u/114298?v=4"
        },
        {
          "type": "User",
          "login": "myke-awoniran",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/76267448?v=4"
        },
        {
          "type": "User",
          "login": "yashrajoria",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/61435936?v=4"
        }
      ],
      "contributors_sampled": 4,
      "top_contributor_share": 0.922
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "aislop.yml",
        "ci.yml",
        "codeql.yml",
        "contributors.yml",
        "release.yml",
        "sync-develop.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        "biome.json"
      ],
      "has_editorconfig": true,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "pnpm-lock.yaml"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 4,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "18 out of 18 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/17 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 15 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": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 7,
            "reason": "SAST tool detected but not run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 1,
            "reason": "9 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "5fb46196ef62cc8b4b7907af602c30d70deba929",
        "ran_at": "2026-08-03T00:33:24Z",
        "aggregate_score": 5.7,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "recent_prs": {
        "merged_7d": 0,
        "decided_7d": 0,
        "merged_30d": 31,
        "authors_30d": 2,
        "decided_30d": 32,
        "sample_size": 60,
        "window_days": 30,
        "sample_exhausted": false,
        "authors_probed_30d": 2,
        "newcomer_merged_30d": 0,
        "bot_prs_excluded_30d": 21,
        "newcomer_authors_30d": 0,
        "newcomer_decided_30d": 0
      },
      "ci_last_run_at": "2026-08-02T04:14:41Z",
      "oldest_open_prs": [
        {
          "number": 273,
          "created_at": "2026-07-07T03:27:25Z",
          "last_comment_at": "2026-07-28T06:10:59Z",
          "last_comment_author": "scan-ai-slop-aislop"
        },
        {
          "number": 274,
          "created_at": "2026-07-07T08:49:47Z",
          "last_comment_at": "2026-07-28T06:11:03Z",
          "last_comment_author": "scan-ai-slop-aislop"
        },
        {
          "number": 284,
          "created_at": "2026-07-16T02:48:59Z",
          "last_comment_at": "2026-07-28T03:07:40Z",
          "last_comment_author": "scan-ai-slop-aislop"
        },
        {
          "number": 324,
          "created_at": "2026-07-26T10:15:39Z",
          "last_comment_at": "2026-07-26T10:15:49Z",
          "last_comment_author": "scan-ai-slop-aislop"
        },
        {
          "number": 325,
          "created_at": "2026-07-27T07:30:27Z",
          "last_comment_at": "2026-07-27T08:24:28Z",
          "last_comment_author": "mtschoen"
        },
        {
          "number": 326,
          "created_at": "2026-08-01T06:09:46Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 327,
          "created_at": "2026-08-01T06:09:59Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 328,
          "created_at": "2026-08-01T06:10:10Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 329,
          "created_at": "2026-08-01T06:10:17Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 330,
          "created_at": "2026-08-01T06:10:24Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 331,
          "created_at": "2026-08-01T06:10:36Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-25T19:18:34Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 228,
          "created_at": "2026-06-16T09:02:24Z",
          "last_comment_at": "2026-06-20T10:21:46Z",
          "last_comment_author": "heavykenny"
        },
        {
          "number": 263,
          "created_at": "2026-06-30T12:37:50Z",
          "last_comment_at": "2026-07-25T20:23:14Z",
          "last_comment_author": "heavykenny"
        },
        {
          "number": 318,
          "created_at": "2026-07-25T20:25:31Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 319,
          "created_at": "2026-07-25T20:25:32Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 320,
          "created_at": "2026-07-25T20:25:32Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 321,
          "created_at": "2026-07-25T20:25:33Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 322,
          "created_at": "2026-07-25T20:25:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 323,
          "created_at": "2026-07-25T20:25:34Z",
          "last_comment_at": "2026-07-26T10:02:54Z",
          "last_comment_author": "swjturay"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/scanaislop/aislop",
    "host": "github.com",
    "name": "aislop",
    "owner": "scanaislop"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "excellent",
      "name": "Overall health",
      "note": "The weighted overall 73 is calibrated to 87 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 73,
            "calibrated": 87,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 87,
      "inputs": {
        "security": 61,
        "vitality": 86,
        "community": 73,
        "governance": 52,
        "calibration": "2026-08-02",
        "engineering": 94,
        "ai_readiness": 78,
        "weighted_overall_raw": 73
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 86,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "commits_last_year": 322,
              "human_commit_share": 0.87,
              "days_since_last_push": 1,
              "active_weeks_last_year": 19
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 1 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "19/52 weeks with commits",
                "points": 13.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 19
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "322 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 322
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "exceptional",
            "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": 36,
              "latest_release_tag": "v0.14.0",
              "releases_from_tags": false,
              "days_since_latest_release": 10,
              "mean_days_between_releases": 6.1
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "36 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 36
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 10 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 10
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~6.1 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 6.1
                    }
                  }
                ],
                "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": "exceptional",
            "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": "good",
        "name": "Community & Adoption",
        "value": 73,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 56,
            "inputs": {
              "forks": 24,
              "stars": 530,
              "watchers": 2,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "530 stars",
                "points": 44.2,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 530
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "24 forks",
                "points": 11.3,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 24
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "2 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": 8,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "readme_badge_services": [
                "github.com",
                "shields.io"
              ],
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "good",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 72,
            "inputs": {
              "packages": [
                "aislop"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 22077
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "22,077 downloads/month across npm",
                "points": 57.9,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 22077,
                      "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.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 19,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 4,
              "top_contributor_share": 0.922
            },
            "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 92% of commits",
                "points": 1.8,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 92
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "4 contributors",
                "points": 5.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "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): Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "inputs": {
              "merged_prs": 271,
              "open_issues": 8,
              "closed_issues": 10,
              "prs_merged_7d": 0,
              "prs_decided_7d": 0,
              "prs_merged_30d": 31,
              "prs_decided_30d": 32,
              "issue_closed_ratio": 0.556,
              "closed_unmerged_prs": 14,
              "first_time_authors_30d": 0,
              "first_time_prs_merged_30d": 0,
              "first_time_prs_decided_30d": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "56% of issues closed",
                "points": 23.4,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 56
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "271/285 decided PRs merged",
                "points": 28.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 271,
                      "decided": 285
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "no first-time contributor's PR decided in 30d",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_newcomer_prs",
                    "params": {
                      "days": 30
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/17 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "weak",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 44,
            "inputs": {
              "followers": 9,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "scanaislop",
              "public_repos": 7,
              "account_age_days": 105
            },
            "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": "9 followers of scanaislop",
                "points": 7.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 9,
                      "login": "scanaislop"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "7 public repos, account ~0 yr old",
                "points": 7.2,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 7
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 0
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "exceptional",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "aislop"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 10
            },
            "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 10 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 10
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "36 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 36
                    }
                  }
                ],
                "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": "exceptional",
        "name": "Engineering Quality",
        "value": 94,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "6 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": "biome.json",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "biome.json"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "18 out of 18 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "exceptional",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "ai",
                "ai-slop",
                "ai-slop-detection",
                "cli",
                "code-quality",
                "code-review",
                "developer-tools",
                "linter",
                "static-analysis",
                "github-actions",
                "pre-commit",
                "quality-gate",
                "typescript",
                "go",
                "javascript",
                "php",
                "pull-request",
                "python",
                "ruby",
                "rust"
              ],
              "has_wiki": true,
              "homepage": "https://scanaislop.com",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://scanaislop.com",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "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": 61,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 57,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 5.7
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "18 out of 18 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/17 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 15 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 detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool detected but not run on all commits",
                "points": 3.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "9 existing vulnerabilities detected",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "good",
            "name": "Dependency advisories",
            "note": "Matched the npm:aislop@0.14.0 runtime dependency closure — what installing the published package pulls in — 243 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:aislop@0.14.0",
                  "assessed": 243
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 79,
            "inputs": {
              "source": "osv",
              "advisories": 1,
              "affected_packages": 1,
              "assessed_packages": 243,
              "unassessed_packages": 0,
              "affected_by_severity": "high 1",
              "direct_affected_packages": 1
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "1 affected: adm-zip 0.5.18 (high 7.5)",
                "points": 14,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 1,
                      "packages": "adm-zip 0.5.18 (high 7.5)"
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory 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": "exceptional",
            "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": 243,
              "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": "exceptional",
            "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"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 4
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 78,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.874,
              "agent_instruction_files": [
                "AGENTS.md",
                "CLAUDE.md",
                "GEMINI.md"
              ],
              "agent_instruction_max_bytes": 7026
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md, CLAUDE.md, GEMINI.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md, CLAUDE.md, GEMINI.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "76 of 87 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 76,
                      "sampled": 87
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 72,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "pnpm-lock.yaml"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "editors/vscode/tsconfig.json",
                "tsconfig.json"
              ],
              "agent_commit_share": 0.11,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.13
            },
            "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": "biome.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "biome.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "editors/vscode/tsconfig.json, tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "editors/vscode/tsconfig.json, tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "11 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 11,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "13 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 13,
                      "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 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "exceptional",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 54193,
              "source_files_sampled": 432,
              "oversized_source_files": 0
            },
            "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": "0/432 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 432,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "moderate",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": true,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "top": [
        "library",
        "application"
      ],
      "labels": [
        "cli",
        "library",
        "mcp-server",
        "tui"
      ],
      "scores": {
        "cli": 20,
        "tui": 4,
        "library": 14,
        "mcp-server": 7
      },
      "primary": "cli",
      "evidence": [
        {
          "tier": "declared",
          "label": "cli",
          "source": "npm.bin",
          "weight": 10
        },
        {
          "tier": "declared",
          "label": "library",
          "source": "npm.entry",
          "weight": 8
        },
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:npm",
          "weight": 6
        },
        {
          "tier": "dependencies",
          "label": "cli",
          "source": "dep:commander",
          "weight": 4
        },
        {
          "tier": "dependencies",
          "label": "mcp-server",
          "source": "dep:@modelcontextprotocol/sdk",
          "weight": 4
        },
        {
          "tier": "dependencies",
          "label": "tui",
          "source": "dep:ink",
          "weight": 4
        },
        {
          "tier": "structure",
          "label": "mcp-server",
          "source": "mcp_signal",
          "weight": 3
        },
        {
          "tier": "tags",
          "label": "cli",
          "source": "tag:cli",
          "weight": 2
        },
        {
          "tier": "tags",
          "label": "cli",
          "source": "tag:formatter",
          "weight": 2
        },
        {
          "tier": "tags",
          "label": "cli",
          "source": "tag:linter",
          "weight": 2
        }
      ],
      "artifacts": [
        {
          "path": "package.json",
          "labels": [
            "cli",
            "library"
          ],
          "ecosystem": "npm"
        }
      ],
      "confidence": "high",
      "host_extension": false,
      "runs_as_process": true,
      "consumed_by_code": true
    },
    "metrics_version": "2.5.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-08-03T00:33:42.335805Z",
  "schema_version": "0.30.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/scanaislop/aislop.svg",
  "full_name": "scanaislop/aislop",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v2.5.0, schema v0.30.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsnpm.