Public record
Software health reportschema 0.27.0 · metrics 2.3.1 · 2026-07-31 21:29 UTC

LilMGenius / paperthin

Low-level agentic design patterns. Turning old engineering wisdom into reflexes your agent reaches for on its own—on any agent.

Shell · JavaScriptMIT★ 119 stars⑂ 15 forkssince Jun 2026View on GitHub ↗

LilMGenius/paperthin holds a health index of 50 out of 100, placing it in the Moderate band. It scores highest on Vitality (68/100) and lowest on Security (37/100). It was last updated 9 days ago. A single contributor accounts for most of its recent work.

50
overall / 100
Moderate

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.

50
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 50 is calibrated to 50 on the published index scale (record calibration 2026-08-02).

Ownership

LilMGeniusPersonal account
69 followers9 public repossince Jan 2022@DaedalGames | @Devfiance

This repository is owned by a personal account. A single-owner project carries more continuity risk than an organization-backed one.

Package ecosystems

Metrics by category

Vitality

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

68Good · 21% of overall
How it's scored
28.8/36Push recency — last push 9 days ago
3.5/36Commit cadence — 5/52 weeks with commits
15.1/18Commit volume — 47 commits in the last year
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Inputs used
commits_last_year47
human_commit_share1
days_since_last_push9
active_weeks_last_year5

Release discipline

100Exceptional
How it's scored
27/27Ships releases — 27 releases published
36/36Release recency — latest release 9 days ago
27/27Release cadence — a release every ~0.5 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count27
latest_release_tagv0.17.2
releases_from_tagsno
days_since_latest_release9
mean_days_between_releases0.5
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?

50Moderate · 17% of overall
How it's scored
33.6/60Stars — 119 stars
9.6/25Forks — 15 forks
0/15Watchers — 1 watchers
Inputs used
forks15
stars119
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (MIT)
0/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
0/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
readme_badges
has_contributingno
has_issue_templateno
has_code_of_conductno
readme_badge_services
has_pull_request_templateno
How it's scored
48.2/80Monthly downloads — 4,136 downloads/month across npm
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagespaperthin
dependents
ecosystemsnpm
total_downloads
monthly_downloads4,136
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?

42Weak · 23% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
3.8/22.5Commit distribution — top contributor authored 83% of commits
6.8/13.5Contributor breadth — 5 contributors
10/10OpenSSF Scorecard: Contributors — project has 7 contributing companies or organizations
Inputs used
bus_factor1
contributors_sampled5
top_contributor_share0.83
How it's scored
0/42Issue resolution — no issues or no data
0/30PR acceptance — 0/17 decided PRs merged
0/13Newcomer PR acceptance — no first-time contributor's PR decided in 30d
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Inputs used
merged_prs0
open_issues0
closed_issues0
prs_merged_7d
prs_decided_7d
prs_merged_30d
prs_decided_30d
issue_closed_ratio
closed_unmerged_prs17
first_time_authors_30d
first_time_prs_merged_30d
first_time_prs_decided_30d
Excluded from scoring (no data or not applicable): Issue resolution, newcomer_pr_acceptance. Remaining weights renormalized.
How it's scored
10/30Ownership backing — personal (user) account
0/20Verified domain — not applicable to user accounts
13.3/25Owner reach — 69 followers of LilMGenius
16.4/25Track record — 9 public repos, account ~4 yr old
Inputs used
followers69
owner_typeUser
is_verified
owner_loginLilMGenius
public_repos9
account_age_days1,668
Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.

Package maintenance

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

Engineering Quality

Are baseline engineering and documentation practices in place?

54Moderate · 19% of overall
How it's scored
24/24CI workflows — 2 workflow(s)
0/24Tests present
0/16Linter config
0/9.6Pre-commit hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — no data
Inputs used
has_ciyes
has_testsno
has_editorconfigno
has_linter_configno
has_precommit_configno
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.

Documentation

90Excellent
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://paperthin.ai
10/10Repository description
10/10Topics — 11 topics
0/10Wiki
Inputs used
topicsanti-slop, clean-code, hygiene, markdown, plugin, skills, ssot, evals, fable, design-patterns, docs
has_wikino
homepagehttps://paperthin.ai
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

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

37Weak · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — no data
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 7 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — no SAST tool detected
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — no data
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate3.7
Excluded from scoring (no data or not applicable): ci_tests, signed_releases. Remaining weights renormalized.

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.

40Weak · 4% of overall
How it's scored
45/45Agent instructions — CLAUDE.md
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 47 of 47 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share1
agent_instruction_filesCLAUDE.md
agent_instruction_max_bytes13,437
How it's scored
0/18One-command bootstrap
0/22Automated tests
0/11Lint / format config
0/11Static type checking
0/10Reproducible environment
0/10Demonstrated agent practice — no agent-authored commits among the last 47
0/8Automated maintenance — no automated dependency updates observed
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Inputs used
has_nixno
has_testsno
lockfiles
has_dockerfileno
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
How it's scored
0/45Type-checkable code — Shell without a type-check config
55/55Manageable file sizes — 0/5 source files over 60KB
Inputs used
primary_languageShell
largest_source_bytes3,458
source_files_sampled5
oversized_source_files0

Key facts

119GitHub stars
5contributors
47commits, last 12 months
9days since last push
27releases
1bus factor
0open issues
npmpackage ecosystems

Data collection warnings

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

More detail

Star and fork history 0 ★ / 15 ⇿
0Stars
15Forks
26Releases

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.

03581013151562026-062026-072026-07
Major 0Minor 12Patch 14
OpenSSF Scorecard 3.7 / 10
3.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-07-31 21:29 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
n/aCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
10Contributorsproject has 7 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
n/aSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
All dependencies not collected

The resolved dependency set could not be collected for this report: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "anti-slop",
        "clean-code",
        "hygiene",
        "markdown",
        "plugin",
        "skills",
        "ssot",
        "evals",
        "fable",
        "design-patterns",
        "docs"
      ],
      "is_fork": false,
      "size_kb": 456,
      "has_wiki": false,
      "homepage": "https://paperthin.ai",
      "languages": {
        "Shell": 12975,
        "JavaScript": 12583
      },
      "pushed_at": "2026-07-22T14:39:41Z",
      "created_at": "2026-06-19T02:03:18Z",
      "owner_type": "User",
      "updated_at": "2026-07-30T03:44:59Z",
      "description": "Low-level agentic design patterns. Turning old engineering wisdom into reflexes your agent reaches for on its own—on any agent.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Shell",
      "significant_languages": [
        "Shell",
        "JavaScript"
      ]
    },
    "owner": {
      "blog": null,
      "name": null,
      "type": "User",
      "login": "LilMGenius",
      "company": "@DaedalGames | @Devfiance",
      "location": "everywhere",
      "followers": 69,
      "avatar_url": "https://avatars.githubusercontent.com/u/97161055?v=4",
      "created_at": "2022-01-05T09:46:13Z",
      "is_verified": null,
      "public_repos": 9,
      "account_age_days": 1668
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.17.2",
          "kind": "patch",
          "published_at": "2026-07-22T14:40:07Z"
        },
        {
          "tag": "v0.17.1",
          "kind": "patch",
          "published_at": "2026-07-21T08:11:53Z"
        },
        {
          "tag": "v0.17.0",
          "kind": "minor",
          "published_at": "2026-07-20T22:32:24Z"
        },
        {
          "tag": "v0.16.2",
          "kind": "patch",
          "published_at": "2026-07-20T21:20:38Z"
        },
        {
          "tag": "v0.16.1",
          "kind": "patch",
          "published_at": "2026-07-19T09:08:53Z"
        },
        {
          "tag": "v0.16.0",
          "kind": "minor",
          "published_at": "2026-07-19T05:29:39Z"
        },
        {
          "tag": "v0.15.1",
          "kind": "patch",
          "published_at": "2026-07-18T02:54:09Z"
        },
        {
          "tag": "v0.15.0",
          "kind": "minor",
          "published_at": "2026-07-17T23:17:26Z"
        },
        {
          "tag": "v0.14.0",
          "kind": "minor",
          "published_at": "2026-07-17T20:00:52Z"
        },
        {
          "tag": "v0.13.1",
          "kind": "patch",
          "published_at": "2026-07-17T19:43:07Z"
        },
        {
          "tag": "v0.13.0",
          "kind": "minor",
          "published_at": "2026-07-17T13:31:07Z"
        },
        {
          "tag": "v0.12.0",
          "kind": "minor",
          "published_at": "2026-07-14T23:06:59Z"
        },
        {
          "tag": "v0.11.0",
          "kind": "minor",
          "published_at": "2026-07-14T20:07:22Z"
        },
        {
          "tag": "v0.10.0",
          "kind": "minor",
          "published_at": "2026-07-08T09:01:19Z"
        },
        {
          "tag": "v0.9.4",
          "kind": "patch",
          "published_at": "2026-07-08T07:37:17Z"
        },
        {
          "tag": "v0.9.3",
          "kind": "patch",
          "published_at": "2026-07-08T03:24:48Z"
        },
        {
          "tag": "v0.9.2",
          "kind": "patch",
          "published_at": "2026-07-06T18:37:32Z"
        },
        {
          "tag": "v0.9.1",
          "kind": "patch",
          "published_at": "2026-07-06T15:35:58Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2026-07-06T02:28:42Z"
        },
        {
          "tag": "v0.8.2",
          "kind": "patch",
          "published_at": "2026-07-05T20:07:00Z"
        },
        {
          "tag": "v0.8.1",
          "kind": "patch",
          "published_at": "2026-07-05T16:49:49Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-07-05T08:21:25Z"
        },
        {
          "tag": "v0.7.2",
          "kind": "patch",
          "published_at": "2026-07-04T17:54:52Z"
        },
        {
          "tag": "v0.7.1",
          "kind": "patch",
          "published_at": "2026-07-04T13:29:49Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2026-07-04T12:31:08Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2026-06-28T12:26:07Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2026-06-21T04:08:28Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "13f98db5d5ed1c29c79a0a6de66d689d58a73feb",
          "body": "- order `reorder`, `detool`, `dedash`, `debloat` contiguous across every roster surface and README\n- add `debloat` to the READMEs' Problem removes-list\n- codify when a skill earns a Problem or Fixes entry — only if it carries the thesis",
          "is_bot": false,
          "headline": "docs: order the de- cluster and codify the README-placement rule",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-22T14:38:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cdbb4a1b76ce0fd28fcab9f0b7d43c494fb2dab3",
          "body": "- the Shipping checklist and `re0-release` now require a new skill or rename to take its place in the roster's one logical order, held across all four surfaces with `reorder`",
          "is_bot": false,
          "headline": "docs: make roster-order placement a shipping step",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-21T08:09:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05c92e8326b6e1cfec02b09bbddbaeef1a50670a",
          "body": "- `debloat` (user-invoked, `depth/`): compress an artifact that has accreted into bloat — padding, walls of enumeration, restated rules — down to its load-bearing density, cutting words but never a rule; the compression half of the Restraint triad that `ssotize` (duplication) leaves, distinct from `\n[…]\ng/releasing/philosophy/conventions/invocation accretion — the self-containment rule single-sourced to Philosophy, the per-skill invocation rationale moved to `docs/invocation.md`, every rule kept once",
          "is_bot": false,
          "headline": "feat: add debloat, a reflex that compresses a bloated artifact",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-20T22:31:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "07c1a4d79d3312cb73c185eb3d00a16e2dcafbb1",
          "body": "- add a CI drift-guard that fails if the home is reconstructed outside catalog.cjs or the retired name reappears",
          "is_bot": false,
          "headline": "refactor: single-source the discovery-notice deploy home at ~/.re0/",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-20T21:17:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "85e5bf7c92c34f4d53f08730c9e5527d10d217cb",
          "body": "…bump discriminator\n\n- `re0-upgrade` rules out a shadow install before classifying: if it is running yet `npx skills list` reports zero paperthin, it checks the managed footprint (`~/.agents/skills/`) to tell a git-clone install Claude Code loads but the CLI can't see from a mis-scoped or flaky read\n[…]\n to the artifact's own prior spec, was the old behavior wrong (a fix, patch) or correct-but-narrower (a new capability, minor)? — stated in CLAUDE.md and applied inline by `re0-release` and `re0-plan`",
          "is_bot": false,
          "headline": "fix: guard re0-upgrade against a shadow install, and pin the version-…",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-19T08:29:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8593224181456e59bb4cbb0ed088e9216b010cdb",
          "body": "- from one risk read, `modelchk` now recommends a second orthogonal coordinate — reasoning effort on a neutral `glance`/`measured`/`thorough`/`exhaustive` scale bound to the model's own ladder positions rather than a vendor level — with a boundary rule that holds the skill to the run's cognitive spe\n[…]\nso it cannot accrete orchestration dials; the README and its ten translations follow\n- trim the README tour: drop the re0-merge fixes entry and reorder the problem and fixes lists to the lifecycle arc",
          "is_bot": false,
          "headline": "feat: size reasoning effort alongside the capability tier",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-19T05:29:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a94aea883435ec98f3859186a7481ca794a73003",
          "body": "- light up `mesh/` on the map SVG, matching the three active quadrants (full title fill, normal underline, live subtitle colors) now that `prism` lives there — it had kept the faded styling from before the quadrant held a skill\n- add the shipped reflexes to the README's own tour across the root and all ten translations: `aim`, `feynman`, `prism`, and `reorder` join The Problem's removes-list, and The Fixes gains `reorder` and `re0-merge` entries with worked proofs",
          "is_bot": false,
          "headline": "docs: catch the map and the README up to the skills that shipped",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-18T02:53:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "53c8f1cffbf49e6ad41f90f76803221b280587d5",
          "body": "- add `re0-merge` (depth, user-invoked): gate a pull request against the thesis, land it with the author's credit intact and maintainer edits as separate commits, then approve, credit, and close; distilled from this session's own PR reviews so any collaborator or maintainer runs it, not only the aut\n[…]\nonly for a real batch\n- state in the Philosophy that an example in any durable doc stays generic (`(#123, @handle)`, `land/pr-<n>`), never a real PR number, handle, SHA, or range from the work at hand",
          "is_bot": false,
          "headline": "feat: add re0-merge, a reflex for reviewing and landing a contribution",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-17T23:16:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "95853280724ecc451eb70a4f5433e8eb51029eca",
          "body": "- open the `mesh/` quadrant with `prism` and register `aim`, `feynman`, and `prism` across every roster surface (plugin.json, the README 5-column Index in root and 10 localized copies, re0-upgrade's Current catalog, scripts/catalog.cjs), also adding the live-but-unlisted `re0-plan` the drift-guard n\n[…]\n session's conventions in CLAUDE.md: land external contributions on a `land/pr-<range>` branch, the paired skills (`aim`↔`nba`, `macrothink`↔`prism`, `catchup`↔`nba`), and the `re0`-first ordering pin",
          "is_bot": false,
          "headline": "feat: register the three accepted skills, open mesh, and add reorder",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-17T22:18:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d6e48195db61358bcf8d55b35e176d452ab214e4",
          "body": "… the lens count by distinctness\n\n- rename `panel` to `prism`: the physics fits — a prism separates one thing into a spectrum of views rather than merging them, matching \"disagreement is the product, never an average\"; `panel` invited the consensus/vote reading the skill refuses\n- flip to user-invok\n[…]\nith one lens per genuinely distinct failure mode, banded 2 to 5 with no default — the artifact's real failure modes set the count, where a fixed range invited padding a fourth or dropping a real fifth",
          "is_bot": false,
          "headline": "refactor(prism): rename panel to prism, flip to user-invoked, and set…",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-17T21:33:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "59823ab4ff6f6556fd6feb96306f61956443c119",
          "body": "…g, not Socratic method\n\n- rename `dig` to `feynman`: the win condition is round-over-round improvement in what you can explain — the Feynman test — so the name says it, where `dig` was generic\n- drop the \"Socratic\" framing for Feynman-style understanding, and describe the isolation technique inline instead of naming another skill (self-containment); the mechanism is unchanged — withhold rationale, isolate a fresh critic, narrow don't repeat, flag an unearned gap rather than force it",
          "is_bot": false,
          "headline": "refactor(feynman): rename dig to feynman and reframe around explainin…",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-17T21:30:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3cd841b7e97bc83d0364d6beae5740b540857ecd",
          "body": "- `ii` was opaque — two letters gave no clue what it does; `aim` names the intent the skill proposes, and reads as the mirror of `nba` (state to next action vs data to intent)\n- tightened to the house anatomy; stays model-invoked so the reflex fires when data lands with a thin ask, not only when asked for",
          "is_bot": false,
          "headline": "refactor(aim): rename ii to aim and rewrite it native",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-17T21:28:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "abb4d52e6473c16c87128e96ae257d02f59dd6d0",
          "body": "… is flagged\n\n- a context-free critic gets the decision with no rationale supplied, presses for what is undefended, narrows on a shallow answer instead of passing it, and surfaces an unresolved gap as a flag rather than forcing a resolution",
          "is_bot": false,
          "headline": "feat(dig): press a just-made decision until it is defended or its gap…",
          "author_name": "kaestro",
          "author_login": "kaestro",
          "committed_at": "2026-07-13T12:40:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f44d4847eb8b63ebc2d477d40a0ca773b3c59a0",
          "body": "- when data lands with a thin ask, present what the user is trying to do as a proposal to confirm, revise, or reject, so they answer with a yes rather than composing the sentence a question would demand",
          "is_bot": false,
          "headline": "feat(ii): read handed-over data and propose the intent instead of asking",
          "author_name": "sergiobuilds",
          "author_login": "sergiobuilds",
          "committed_at": "2026-07-13T09:06:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "775f2004b575ca9b6b5666122d335ba77d845c91",
          "body": "…gence\n\n- draw 2-4 distinct-failure-mode lenses on one artifact, each a one-line verdict plus its single load-bearing reason, and return where they agree, where they disagree, and the one question that resolves the disagreement — never an average",
          "is_bot": false,
          "headline": "feat(panel): convene independent perspectives and return their conver…",
          "author_name": "sergiobuilds",
          "author_login": "sergiobuilds",
          "committed_at": "2026-07-12T23:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "97d405200a34d2137addeea5eec7e6afa39ed4eb",
          "body": "- add an approve-then-close rule to CLAUDE.md's Releasing checklist and re0-release's inline copy: a contribution squashed or rebuilt into a release is closed, not merged, so the approving review is what records it as accepted; written for any reviewer with access, not one fixed maintainer",
          "is_bot": false,
          "headline": "docs: approve external PRs before closing them, as a release step",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-17T20:17:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e39e26ccd3b98965dc484982650fd6cff9c512a",
          "body": "- name each externally-contributed change with its author handle and PR in the release-notes house style, across CLAUDE.md and re0-release's inline copy",
          "is_bot": false,
          "headline": "docs: credit contributors by PR number and handle in release notes",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-17T19:55:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "afc30f91edeb8e67981d2d4030f90633e94c6efc",
          "body": "- run check-skill-refs and check-links alongside validate-skills and the catalog drift-guard on every push and pull request",
          "is_bot": false,
          "headline": "ci: run the reference and link checks, and bump to 0.14.0",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-17T18:40:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e01f766b96230c6ab00b8ba05d53c42514ad5e74",
          "body": "…alse positive\n\n- require a non-empty segment each side of the hyphen so a documented `re0-` prefix is not read as a typo of `re0`\n- describe the check in-header as the narrow near-miss heuristic it is, not a full resolver\n- correct a stale `ssotchk` mention to `ssotize`",
          "is_bot": false,
          "headline": "fix(check-skill-refs): scope the typo heuristic honestly and drop a f…",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-17T18:40:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc2859074f2a3dd7c67f186367d8d885cd246aae",
          "body": "- resolve every relative link, inline and reference-style, against files on disk and fail on a dangling target\n- strip images and skip external links; scope limits (collapsed and implicit refs, exotic targets) documented inline",
          "is_bot": false,
          "headline": "feat(check-links): verify relative Markdown links resolve",
          "author_name": "sergiobuilds",
          "author_login": "sergiobuilds",
          "committed_at": "2026-07-17T18:40:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b8bf9adec686f5b3b50c35265cc9a635075e30a",
          "body": "- flag a backticked, hyphenated token sitting one affix off a shipped skill name as a likely typo, scanned in the current shell so a hit fails the check\n- fail when a shipped skill is unreachable from README.md — an orphan on disk",
          "is_bot": false,
          "headline": "feat(check-skill-refs): catch skill-name typos and orphans",
          "author_name": "sergiobuilds",
          "author_login": "sergiobuilds",
          "committed_at": "2026-07-17T18:40:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "08b0c02314d43b3b68c885d5dab32e0eb37b50a7",
          "body": "…ntmatter shape\n\n- require the four structural sections (Goal, Workflow, Rules, Verification) in every SKILL.md\n- cap the frontmatter description at 800 chars, above the catalog's current longest so nothing regresses\n- reject a malformed frontmatter block before it reaches the plugin loader",
          "is_bot": false,
          "headline": "feat(validate): enforce SKILL.md sections, a description cap, and fro…",
          "author_name": "sergiobuilds",
          "author_login": "sergiobuilds",
          "committed_at": "2026-07-17T18:40:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9cb552f11cd5e2290c4a26903324ea6b19756c85",
          "body": "…uted calls\n\n- forbid the run from reading the risky ask back out of decision logs, notes, or transcript search where it shares a filesystem or memory store with this session\n- write the descope archive only after the run's window closes, never while it could be read back\n- route a disputed bright-line call to a fresh context holding only the item's abstract description\n- add a fifth VERIFY direction: an independent re-sweep diffed against the ledger, held to one pass",
          "is_bot": false,
          "headline": "fix(autobahn): harden the carve against shared-state leakage and disp…",
          "author_name": "AlexZio00",
          "author_login": "AlexZio00",
          "committed_at": "2026-07-17T18:40:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "111819919ef88759519a07d863c5b867b481706c",
          "body": null,
          "is_bot": false,
          "headline": "docs: realign CLAUDE.md with the conventions this cycle shipped",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-17T17:39:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09f2046256ed88ef03f188df06bec40996d10d71",
          "body": "… discovery notice\n\n- rework re0-upgrade to install the entire current catalog (retire renamed, add every missing skill, refresh the rest) instead of only refreshing the subset the user already had, so a returning user gets skills shipped since their first install, behind the same shown-and-confirme\n[…]\nade backfilling existing installs, and kept in lockstep with the roster by a CI drift-guard\n- tighten the README Index and split read-only into its own column, across the root and ten localized copies",
          "is_bot": false,
          "headline": "feat: converge re0-upgrade on the full catalog and ship a cross-agent…",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-17T13:08:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a4c43f70b4097ddc1d107aee23d112dc8efd1181",
          "body": "- add coil/re0-plan, a user-invoked skill that opens a new `.re0/iteration/<version>-<workname>/` folder and seeds it with DESIGN/WORKFLOW/EVIDENCE (or a lightweight RETRO) before re0-loop's first turn, wired into plugin.json, CLAUDE.md, and the README, root and every localized copy\n- extend re0-rel\n[…]\nharden re0-git's commit-economy rule so a step a documented checklist already mandates (skill registration, translated-doc sync) folds into the bullet it serves instead of drafting a bullet of its own",
          "is_bot": false,
          "headline": "feat: add re0-plan, a cycle-planning skill paired with re0-release",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-14T23:04:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8d058854a8b2f23674ce4bf808e0389b3ba134e2",
          "body": "- add `readchk`, `modelchk`, `macrothink`, `detool`, and `catchup` to check the read, size the capability tier, fan out perspectives, delanguage tool nouns in portable docs, and rebuild a returning human's context before `nba` picks the next move\n- rename `ppt-upgrade`, `ppt-release`, and `flywheel`\n[…]\nhup in its real run order before nba, updating the arc description and dropping the now-stale clean-vs-true grouping aside\n- ignore `.codegraph/` and local `assets/` artifacts unrelated to the catalog",
          "is_bot": false,
          "headline": "feat: add five new skills and rename ppt- to re0-",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-14T20:04:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "280003081efe7b6e40a9fe3248e138e9527f6a53",
          "body": "- add depth/ppt-release: a user-invoked orchestrator that walks the checklist end to end, running `sip` and `re0-git` when installed, gating commit and tag+push behind separate confirmations; wired into `plugin.json`, the README and its translations, `ppt-upgrade`'s current catalog, and CLAUDE.md's orchestrator list\n- add a major-bump case (a skill removed with no replacement path) to CLAUDE.md's version-bump rule, alongside the existing minor/patch cases",
          "is_bot": false,
          "headline": "feat: turn the shipping and releasing checklist into a skill",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-08T08:41:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "acde18b778663b0a31ae8bfda4d1e34fb21f07f2",
          "body": "- retry a skill that fails `npx skills update` on its own, then fall back to a confirmed remove-and-reinstall by name instead of leaving it stale\n- verify any skill that took that path actually landed, not silently missing",
          "is_bot": false,
          "headline": "fix: harden ppt-upgrade against update failures",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-08T07:11:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bbf96820fe5a53276540bc05d11ee161ac15908f",
          "body": "- call the real GitHub REST endpoint for the optional star step, since `gh repo star` doesn't exist\n- lead the description with the safe one-command upgrade it runs, not just the renames it retires, synced across every localized README\n- give CLAUDE.md a Releasing section with the release flow, hous\n[…]\ncret setup in the gitignored local doc\n- give CLAUDE.md a Local provenance section documenting `.ppt/` as the repo's own gitignored home for iteration casebooks and the release rail, alongside `.omo/`",
          "is_bot": false,
          "headline": "fix: correct ppt-upgrade and consolidate release docs",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-08T03:22:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ad99c35b8fab32e571c80aa0720a756dc28763e6",
          "body": "- package the localized README work as the next patch release\n\n- run CI and publish validation on Node 24 via checkout/setup-node v5",
          "is_bot": false,
          "headline": "chore: ready localized READMEs for release",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-06T18:35:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16a98c30902c161fa9c1f7d67cd8016953137d0d",
          "body": "- keep one switcher shape across English and localized READMEs, after the section nav, with the current language as plain text\n\n- keep localized copies under docs/readme and rebase copied repo links from that directory; CLAUDE records that rule",
          "is_bot": false,
          "headline": "docs: normalize README language switchers",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-06T17:57:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba9ae6ee6365c598effbb8a00aa29139abd32f2d",
          "body": "- add Arabic, German, Spanish, French, Hindi, Japanese, Korean, Portuguese, Russian, and Simplified Chinese README translations under docs/readme",
          "is_bot": false,
          "headline": "feat: add localized READMEs",
          "author_name": "JSap0914",
          "author_login": "JSap0914",
          "committed_at": "2026-07-06T16:39:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c06baaec62e3a725ed3c4fd17485cc2cf7e18897",
          "body": "- make ppt-upgrade reconcile installed directory slugs as well as listed names, so a stale scratch directory whose SKILL.md already names re0-work is still retired through skills remove\n\n- reserve ppt as Paperthin's short prefix and align package/plugin descriptions with the repo about line",
          "is_bot": false,
          "headline": "fix: harden ppt-upgrade for stale installs",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-06T15:31:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6a09a030a6dd93df00965547737b69e2d9f8427",
          "body": "- add breadth/ppt-upgrade as the user-invoked migration path for renamed skills, with selective install/update commands and the rename checklist as its SSOT\n- make ssotchk and ssotize code/config-aware: docs link, code imports or includes, config reads from a shared home, and structural code moves use language-aware edits",
          "is_bot": false,
          "headline": "feat: add ppt-upgrade and code-aware SSOT",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-06T02:23:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "abe647505c4c83e719a38db807a74e2153080a79",
          "body": "- inline each skill's conventions and drop every cross-skill and CLAUDE.md reference, so a solo `npx skills add` no longer dangles; only the ssotchk->ssotize pair and the orchestrators still name a sibling\n- rename scratch to re0-work, joining re0 and re0-git as the re-zero family\n- reframe the bran\n[…]\npatterns\" and lead the README H1 with it for search\n- carry `--date=now` in re0-git's amend command, so it syncs the author date its date rule requires — a bare `--amend` moves only the committer date",
          "is_bot": false,
          "headline": "feat: decouple the skills so each installs on its own",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-05T20:04:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c515a5637567194235670e085c51b1f2a310b2ec",
          "body": "- autobahn now runs the carved safe scope in a fresh subagent that only ever sees the carved prompt, not the risky input, borrowing shower's context-free spawn\n- CLAUDE.md: promote commit-economy to a convention that governs the first draft (re0-git now references it), and record mechanism reuse as a fifth kind of skill-coupling",
          "is_bot": false,
          "headline": "feat: run autobahn's safe scope in a fresh subagent",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-05T16:07:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae94b70e74938309a5e588b47f9c74f545fa6a9b",
          "body": "- add depth/autobahn: carve guardrail-adjacent scope before execution, run the safe remainder at full strength, and ship a descope ledger\n- add depth/dedash (user-invoked): remove em-dashes and their look-alikes from a named scope by grammatical role\n- extend sip to check true, not only clean — factchk on claims, mandela on evals; and give re0 prose- and source-smoothing passes\n- make keeping inter-skill couplings current a shipping step in CLAUDE.md",
          "is_bot": false,
          "headline": "feat: add the autobahn and dedash skills",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-05T08:16:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "39010291138bc2e95f1671e47098fdaf54b525b2",
          "body": "- make Paperthin the public spelling across docs, release titles, and SVG labels\n- redraw the wordmarks around lowercase thin with explicit optical spacing\n- mark the map with LilMGenius/paperthin for out-of-context reuse",
          "is_bot": false,
          "headline": "fix: normalize Paperthin branding",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-04T17:49:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "823bbdb3efb7dfa7b6458e3d74652574881b0a9b",
          "body": "- source the Release body from the tag object via the GitHub API, since a CI checkout lacks the tag object and local git falls back to the commit message\n- skip npm publish when that version is already on the registry, so re-tagging is safe",
          "is_bot": false,
          "headline": "fix: harden the release workflow",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-04T13:33:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0109021e579c085091579f8166dbda3b32d7cbcd",
          "body": "- add coil/ skills: retro, scratch, flywheel, nba\n- rename the adversarial-review skill redteam to hate\n- redesign the README map as an aged four-quadrant graph; the shipped layers now read active, the reserved one muted",
          "is_bot": false,
          "headline": "feat: add the coil iteration-hygiene skills",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-07-04T12:29:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "53db1e60130ed4b1873a3bbbe3e210dc96032426",
          "body": "- regroup the skills into depth/breadth and add reasoning checks for fact, memory, critique, and post-write review\n- add the signed-tag release rail with catalog validation and publish guardrails\n- sharpen re0-git around repo-first log style, message economy, and derivable-trivia cuts",
          "is_bot": false,
          "headline": "feat: tighten PaperThin skills and release rail",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-06-28T11:58:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc5608668e858ca8ecd4fb9fce56b92a3b4d6e7c",
          "body": "- rename to PaperThin / paperthin; set the tagline; recompose keywords around the philosophy, not agent names\n- encode restraint across the skills\n- strip every skill's format and platform enumerations\n- add a banner; refresh README, CLAUDE.md, and package.json to match",
          "is_bot": false,
          "headline": "feat: rebrand to PaperThin and tighten the skills to the canon",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-06-21T03:33:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd813cf85c1f01decb7a8d2e7a4555d4f7985627",
          "body": "- re0-git (user-invoked): rewrite a finished commit's message into a clean v0 so git log alone hands off — message-only, dates and signature handled by position, kept out of tasting so a commit-cleanup tool never nudges an unwanted commit\n- README: restructure into a nav table of contents and a Quic\n[…]\nlapsible [PROOF] demos, full agent list; md-first (HTML only to center the masthead)\n- CLAUDE.md: document the model-vs-user-invoked dividing line, dedup the mattpocock/NOTICE attribution, and trim it",
          "is_bot": false,
          "headline": "feat: add re0-git and rework the README + authoring guide",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-06-20T01:11:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "41985e522843aa55cb59a50da71d8a7216b64749",
          "body": "…fact perspective\n\n- shower cold-reads an artifact via a fresh zero-context sub-session; tasting auto-runs shower/ssotchk/re0 on your own output (both model-invoked)\n- regroup into single/ (re0, shower, tasting) and cross/ (ssotchk, ssotize); criterion and all-model-invoked rationale documented in CLAUDE.md\n- README demonstration-first rewrite with prior-art citations; package.json keywords broadened for agent-agnostic use",
          "is_bot": false,
          "headline": "feat: add verification skills (shower, tasting); group skills by arti…",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-06-19T23:09:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49ce299f74b9e9dcf22bc55d4a30343d2d39ed61",
          "body": "- ssotchk audits where one fact is scattered or duplicated across artifacts and platforms; ssotize consolidates it into one canonical home (read-only audit vs mutating fix)\n- add the CLAUDE.md authoring guide; vendor docs/invocation.md and scripts/ verbatim from mattpocock/skills (MIT, attributed in NOTICE)\n- README and install (npx skills add … --agent '*'); ships as an agent-agnostic skills repo",
          "is_bot": false,
          "headline": "feat: add SSOT skills (ssotchk, ssotize) and scaffold the repo",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-06-19T21:43:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7627307ea44c14a8b037be8d3a7fba86814b679a",
          "body": "- re0 refreshes an artifact into a clean v0 — rewrite, not patch (model-invoked)\n- document global install via npx skills",
          "is_bot": false,
          "headline": "feat: add the re0 skill",
          "author_name": "LilMGenius",
          "author_login": "LilMGenius",
          "committed_at": "2026-06-19T02:03:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 27,
      "commits_last_year": 47,
      "latest_release_at": "2026-07-22T14:40:07Z",
      "latest_release_tag": "v0.17.2",
      "releases_from_tags": false,
      "days_since_last_push": 9,
      "active_weeks_last_year": 5,
      "days_since_latest_release": 9,
      "mean_days_between_releases": 0.5
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "paperthin",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "agent",
            "coding-agents",
            "agent-skills",
            "skills",
            "codex",
            "claude-code",
            "agent-agnostic",
            "design-patterns",
            "knowledge-base",
            "documentation",
            "docs",
            "clean-code",
            "hygiene",
            "anti-slop",
            "refactor",
            "dedupe",
            "single-source-of-truth",
            "ssot",
            "review",
            "comprehension",
            "clarify",
            "restate",
            "context-recovery",
            "onboarding",
            "handoff",
            "fact-check",
            "hallucination",
            "evals",
            "portability",
            "tool-agnostic",
            "vendor-neutral",
            "model-check",
            "capability-sizing",
            "cost-control",
            "blind-spot",
            "perspective",
            "diversity",
            "migration",
            "deprecation",
            "em-dash"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/paperthin",
          "is_deprecated": false,
          "latest_version": "0.17.2",
          "repository_url": "https://github.com/LilMGenius/paperthin",
          "versions_count": 27,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 4136,
          "first_published_at": "2026-06-21T04:04:13.087000Z",
          "latest_published_at": "2026-07-22T14:40:03.133000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 9
        }
      ]
    },
    "popularity": {
      "forks": 15,
      "stars": 119,
      "watchers": 1,
      "fork_history": {
        "days": [
          {
            "date": "2026-06-27",
            "count": 1
          },
          {
            "date": "2026-07-06",
            "count": 6
          },
          {
            "date": "2026-07-07",
            "count": 1
          },
          {
            "date": "2026-07-08",
            "count": 1
          },
          {
            "date": "2026-07-10",
            "count": 1
          },
          {
            "date": "2026-07-12",
            "count": 1
          },
          {
            "date": "2026-07-18",
            "count": 1
          },
          {
            "date": "2026-07-23",
            "count": 1
          },
          {
            "date": "2026-07-25",
            "count": 1
          },
          {
            "date": "2026-07-27",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 15,
        "total_forks": 15
      },
      "star_history": null,
      "open_issues_and_prs": 1
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 3458,
      "source_files_sampled": 5,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 13437
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 1,
        "merged_prs": 0,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 17
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "LilMGenius",
          "commits": 39,
          "avatar_url": "https://avatars.githubusercontent.com/u/97161055?v=4"
        },
        {
          "type": "User",
          "login": "sergiobuilds",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/252875119?v=4"
        },
        {
          "type": "User",
          "login": "AlexZio00",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/257435711?v=4"
        },
        {
          "type": "User",
          "login": "JSap0914",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/116227558?v=4"
        },
        {
          "type": "User",
          "login": "kaestro",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/32026095?v=4"
        }
      ],
      "contributors_sampled": 5,
      "top_contributor_share": 0.83
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": false,
      "ci_workflows": [
        "ci.yml",
        "release.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 7 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "project was created within the last 90 days. Please review its contents carefully",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "no SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "13f98db5d5ed1c29c79a0a6de66d689d58a73feb",
        "ran_at": "2026-07-31T21:29:41Z",
        "aggregate_score": 3.7,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-22T14:40:10Z",
      "oldest_open_prs": [
        {
          "number": 18,
          "created_at": "2026-07-21T12:06:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": null,
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/LilMGenius/paperthin",
    "host": "github.com",
    "name": "paperthin",
    "owner": "LilMGenius"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": "The weighted overall 50 is calibrated to 50 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 50,
            "calibrated": 50,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 50,
      "inputs": {
        "security": 37,
        "vitality": 68,
        "community": 50,
        "governance": 42,
        "calibration": "2026-08-02",
        "engineering": 54,
        "ai_readiness": 40,
        "weighted_overall_raw": 50
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 68,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "weak",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 47,
            "inputs": {
              "commits_last_year": 47,
              "human_commit_share": 1,
              "days_since_last_push": 9,
              "active_weeks_last_year": 5
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 9 days ago",
                "points": 28.8,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 9
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "5/52 weeks with commits",
                "points": 3.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "47 commits in the last year",
                "points": 15.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 47
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "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": 27,
              "latest_release_tag": "v0.17.2",
              "releases_from_tags": false,
              "days_since_latest_release": 9,
              "mean_days_between_releases": 0.5
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "27 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 27
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 9 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 9
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~0.5 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 0.5
                    }
                  }
                ],
                "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": "moderate",
        "name": "Community & Adoption",
        "value": 50,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "weak",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 43,
            "inputs": {
              "forks": 15,
              "stars": 119,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "119 stars",
                "points": 33.6,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 119
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "15 forks",
                "points": 9.6,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 15
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": null,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "readme_badge_services": [],
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "inputs": {
              "packages": [
                "paperthin"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 4136
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "4,136 downloads/month across npm",
                "points": 48.2,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 4136,
                      "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": "weak",
        "name": "Sustainability & Governance",
        "value": 42,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 30,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 5,
              "top_contributor_share": 0.83
            },
            "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 83% of commits",
                "points": 3.8,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 83
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "5 contributors",
                "points": 6.8,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 7 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "critical",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution, Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution",
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "merged_prs": 0,
              "open_issues": 0,
              "closed_issues": 0,
              "prs_merged_7d": null,
              "prs_decided_7d": null,
              "prs_merged_30d": null,
              "prs_decided_30d": null,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 17,
              "first_time_authors_30d": null,
              "first_time_prs_merged_30d": null,
              "first_time_prs_decided_30d": null
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "0/17 decided PRs merged",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 0,
                      "decided": 17
                    }
                  }
                ],
                "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/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 50,
            "inputs": {
              "followers": 69,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "LilMGenius",
              "public_repos": 9,
              "account_age_days": 1668
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "69 followers of LilMGenius",
                "points": 13.3,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 69,
                      "login": "LilMGenius"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "9 public repos, account ~4 yr old",
                "points": 16.4,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 9
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 4
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "exceptional",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "paperthin"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 9
            },
            "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 9 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 9
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "27 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 27
                    }
                  }
                ],
                "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": "moderate",
        "name": "Engineering Quality",
        "value": 54,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "at_risk",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 30,
            "inputs": {
              "has_ci": true,
              "has_tests": false,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "anti-slop",
                "clean-code",
                "hygiene",
                "markdown",
                "plugin",
                "skills",
                "ssot",
                "evals",
                "fable",
                "design-patterns",
                "docs"
              ],
              "has_wiki": false,
              "homepage": "https://paperthin.ai",
              "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://paperthin.ai",
                "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": "11 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 11
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "weak",
        "name": "Security",
        "value": 37,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "weak",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 37,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 3.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 not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 7 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "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": 7
            },
            "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": "weak",
        "name": "AI Readiness",
        "value": 40,
        "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": 1,
              "agent_instruction_files": [
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 13437
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "47 of 47 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 47,
                      "sampled": 47
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "critical",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "has_nix": false,
              "has_tests": false,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 47",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 47
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "primary_language": "Shell",
              "largest_source_bytes": 3458,
              "source_files_sampled": 5,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Shell without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "Shell"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/5 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 5,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "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": {
      "labels": [
        "library"
      ],
      "scores": {
        "plugin": 2,
        "library": 6
      },
      "primary": "library",
      "evidence": [
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:npm",
          "weight": 6
        },
        {
          "tier": "tags",
          "label": "plugin",
          "source": "tag:plugin",
          "weight": 2
        }
      ],
      "artifacts": [],
      "confidence": "medium",
      "host_extension": false,
      "runs_as_process": false,
      "consumed_by_code": true
    },
    "metrics_version": "2.3.1"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-31T21:29:48.024695Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/l/LilMGenius/paperthin.svg",
  "full_name": "LilMGenius/paperthin",
  "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.3.1, schema v0.27.0 — full methodology · metrics wiki.

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