Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 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 estrellas⑂ 15 forksdesde jun 2026Ver en GitHub ↗
TipoBibliotecacómo se determina

LilMGenius/paperthin tiene un índice de salud de 50 sobre 100, lo que lo sitúa en la banda Moderado. Su puntuación más alta es Vitality (68/100) y la más baja, Security (37/100). Se actualizó por última vez hace 9 días. Una sola persona concentra la mayor parte del trabajo reciente.

50
global / 100
Moderado

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala estandarizada de 1 a 100. El resultado global parte de su media ponderada, calibrada contra la distribución del registro público para que las bandas tengan significado percentil; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe un límite «En riesgo» de 34.

50
Excepcional93-100El nivel más alto del registro (≈ el 5% superior); cumple prácticamente todos los criterios evaluados
Excelente80-92Sólido en todos los frentes; carencias menores
Bueno65-79Saludable; carencias limitadas y manejables
Moderado50-64Aceptable con carencias notables; se recomienda revisión
Débil35-49Debilidades sustanciales en varias áreas
En riesgo20-34Debilidades significativas; su adopción exige cautela
Crítico1-19Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

El resultado global ponderado 50 se calibra a 50 en la escala publicada del índice (calibración del registro 2026-08-02).

Titularidad

LilMGeniusCuenta personal
69 seguidores9 repositorios públicosdesde ene 2022@DaedalGames | @Devfiance

Este repositorio pertenece a una cuenta personal. Un proyecto con un único propietario conlleva más riesgo de continuidad que uno respaldado por una organización.

Ecosistemas de paquetes

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

68Bueno · 21% del índice global
Cómo se puntúa
28.8/36Recencia de push — último push hace 9 días
3.5/36Cadencia de commits — 5/52 semanas con commits
15.1/18Volumen de commits — 47 commits en el último año
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Datos de entrada utilizados
commits_last_year47
human_commit_share1
days_since_last_push9
active_weeks_last_year5
Cómo se puntúa
27/27Publica versiones — 27 versiones publicadas
36/36Recencia de las versiones — última versión hace 9 días
27/27Cadencia de publicación — una versión cada ~0,5 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count27
latest_release_tagv0.17.2
releases_from_tagsno
days_since_latest_release9
mean_days_between_releases0,5
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

50Moderado · 17% del índice global
Cómo se puntúa
33.6/60Estrellas — 119 estrellas
9.6/25Forks — 15 forks
0/15Observadores — 1 observadores
Datos de entrada utilizados
forks15
stars119
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (MIT)
0/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
readme_badges
has_contributingno
has_issue_templateno
has_code_of_conductno
readme_badge_services
has_pull_request_templateno
Cómo se puntúa
48.2/80Descargas mensuales — 4136 descargas/mes en npm
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packagespaperthin
dependents
ecosystemsnpm
total_downloads
monthly_downloads4136
Excluidos de la puntuación (sin datos o no aplicable): Dependientes en el registro. Los pesos restantes se han renormalizado.

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

42Débil · 23% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
3.8/22.5Distribución de commits — el principal contribuyente firma el 83% de los commits
6.8/13.5Amplitud de contribuyentes — 5 contribuyentes
10/10OpenSSF Scorecard: Contributors — project has 7 contributing companies or organizations
Datos de entrada utilizados
bus_factor1
contributors_sampled5
top_contributor_share0,83
Cómo se puntúa
0/42Resolución de issues — sin issues o sin datos
0/30Aceptación de PR — 0/17 PR decididos fusionados
0/13Newcomer PR acceptance — ningún PR de un contribuyente primerizo decidido en 30 d
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Datos de entrada utilizados
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
Excluidos de la puntuación (sin datos o no aplicable): Resolución de issues, newcomer_pr_acceptance. Los pesos restantes se han renormalizado.
Cómo se puntúa
10/30Respaldo de la propiedad — cuenta personal (usuario)
0/20Dominio verificado — no aplicable a cuentas de usuario
13.3/25Alcance del propietario — 69 seguidores de LilMGenius
16.4/25Trayectoria — 9 repos públicos, cuenta de ~4 años
Datos de entrada utilizados
followers69
owner_typeUser
is_verified
owner_loginLilMGenius
public_repos9
account_age_days1668
Excluidos de la puntuación (sin datos o no aplicable): Dominio verificado. Los pesos restantes se han renormalizado.
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en npm
35/35Recencia de publicación — última publicación hace 9 días
20/20Historial de versiones — 27 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagespaperthin
ecosystemsnpm
any_deprecatedno
min_days_since_publish9

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

54Moderado · 19% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 2 flujo(s) de trabajo
0/24Pruebas presentes
0/16Configuración de linter
0/9.6Hooks de pre-commit
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — sin datos
Datos de entrada utilizados
has_ci
has_testsno
has_editorconfigno
has_linter_configno
has_precommit_configno
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: CI-Tests. Los pesos restantes se han renormalizado.

Documentación

90Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — https://paperthin.ai
10/10Descripción del repositorio
10/10Topics — 11 topics
0/10Wiki
Datos de entrada utilizados
topicsanti-slop, clean-code, hygiene, markdown, plugin, skills, ssot, evals, fable, design-patterns, docs
has_wikino
homepagehttps://paperthin.ai
has_readme
has_docs_dir
has_description

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

37Débil · 16% del índice global
Cómo se puntúa
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 — sin datos
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.5Licencia — 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 — sin datos
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate3,7
Excluidos de la puntuación (sin datos o no aplicable): ci_tests, signed_releases. Los pesos restantes se han renormalizado.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Tiene un peso deliberadamente pequeño (4%): las herramientas para agentes son una señal real de mantenimiento, pero un repositorio sin ninguna puede alcanzar igualmente 100/100.

40Débil · 4% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — CLAUDE.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 47 de 47 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share1
agent_instruction_filesCLAUDE.md
agent_instruction_max_bytes13.437
Cómo se puntúa
0/18Arranque con un solo comando
0/22Pruebas automatizadas
0/11Configuración de lint / formato
0/11Verificación estática de tipos
0/10Entorno reproducible
0/10Práctica demostrada con agentes — ningún commit con autoría de agente entre los últimos 47
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Datos de entrada utilizados
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
Cómo se puntúa
0/45Código verificable por tipos — Shell sin configuración de verificación de tipos
55/55Tamaños de archivo manejables — 0/5 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageShell
largest_source_bytes3458
source_files_sampled5
oversized_source_files0

Datos clave

119estrellas de GitHub
5contribuidores
47commits en los últimos 12 meses
9días desde el último push
27versiones publicadas
1factor bus
0issues abiertas
npmecosistemas de paquetes

Advertencias de recopilación de datos

  • 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

Más detalle

Historial de estrellas y forks 0 ★ / 15 ⇿
0Estrellas
15Forks
26Versiones

Cuándo se añadió cada estrella y fork, recopilado de GitHub y agrupado por día. El crecimiento acumulado se sitúa justo encima de las adiciones diarias que lo componen, de modo que ambos se leen en conjunto: la acumulación orgánica sostenida no se parece en nada a un pico abrupto y efímero. Cuando esa diferencia es medible, se informa como autenticidad del crecimiento.

03581013151562026-062026-072026-07
Mayor 0Menor 12Parche 14
OpenSSF Scorecard 3.7 / 10
3.7agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).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/dCI-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/dSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Todas las dependencias no recopilado

No fue posible recopilar el conjunto de dependencias resuelto para este informe: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

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

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v2.3.1, esquema v0.27.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadasnpm.