Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-26 10:16 UTC

heart-IT / react-brain

React & React Native decisions with receipts — a continuously verified corpus with a doctor CLI, migration planner, CI review gate, and MCP server for coding agents.

JavaScript · AstroApache-2.0★ 0 Sterne⑂ 0 Forksseit Juli 2026Auf GitHub ansehen ↗

heart-IT/react-brain erreicht einen Gesundheitsindex von 50 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Vitality (69/100) ab, am schwächsten bei Community & Adoption (32/100). Zuletzt vor 6 Tagen aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

50
gesamt / 100
Mittel

Software-Gesundheitsindex

Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.

50
Exzellent85-100Vorbildlich; erfüllt im Wesentlichen alle geprüften Kriterien
Gut70-84Gesund; geringfügige Lücken
Mittel50-69Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Gefährdet30-49Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-29Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Eigentümerschaft

heartITOrganisation
1 Follower15 öffentliche Reposseit März 2017

Dieses Repository wird von einer Organisation getragen — geteilte, rechenschaftspflichtige Trägerschaft, die jeden einzelnen Maintainer überdauern kann.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
npm@heart-it/react-brain0.9.12.26515vor 6 Tagenreactreact-nativeencyclopediaecosystemmentorcliecosystem-fit
npmreact-brain0.9.18066vor 6 Tagenreactreact-nativeexpodeveloper-toolsclimcpmcp-serverknowledge-basedependenciesmigration

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

69Mittel · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 6 Tagen
2.1/36Commit-Rhythmus — 3/52 Wochen mit Commits
18/18Commit-Volumen — 136 Commits im letzten Jahr
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Verwendete Eingangsdaten
commits_last_year136
human_commit_share1
days_since_last_push6
active_weeks_last_year3
Wie die Bewertung erfolgt
16.2/27Liefert Releases aus — 14 Versions-Tags (keine GitHub-Releases)
36/36Release-Aktualität — letztes Release vor 6 Tagen
27/27Release-Rhythmus — ein Release etwa alle 0,8 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count14
latest_release_tagv0.9.1
releases_from_tagsja
days_since_latest_release6
mean_days_between_releases0,8
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

32Gefährdet · 18 % des Gesamtindex
Wie die Bewertung erfolgt
0/60Stars — 0 Stars
0/25Forks — 0 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks0
stars0
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (Apache-2.0)
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein
Wie die Bewertung erfolgt
46.5/80Downloads pro Monat — 3.071 Downloads/Monat über npm
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packages@heart-it/react-brain, react-brain
dependents
ecosystemsnpm
total_downloads
monthly_downloads3.071
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

38Gefährdet · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 100 % der Commits
1.4/13.5Breite der Beitragenden — 1 Beitragende
6/10OpenSSF Scorecard: Contributors — project has 2 contributing companies or organizations -- score normalized to 6
Verwendete Eingangsdaten
bus_factor1
contributors_sampled1
top_contributor_share1
Wie die Bewertung erfolgt
0/46.8Issue-Lösungsquote — keine Issues oder keine Daten
0/38.3PR-Annahme — keine entschiedenen Pull Requests oder keine Daten
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs0
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Issue-Lösungsquote, PR-Annahme. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
2.2/25Reichweite des Inhabers — 1 Follower von heart-IT
20.8/25Kontohistorie — 15 öffentliche Repos, Kontoalter ca. 9 Jahre
Verwendete Eingangsdaten
followers1
owner_typeOrganization
is_verified
owner_loginheart-IT
public_repos15
account_age_days3.417

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 2 Paket(e) auf npm
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 6 Tagen
20/20Versionshistorie — 15 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packages@heart-it/react-brain, react-brain
ecosystemsnpm
any_deprecatednein
min_days_since_publish6

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

66Mittel · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 6 Workflow(s)
24/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — keine Daten
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_confignein
has_precommit_confignein
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: CI-Tests. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
30/30README
0/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://heart-it.github.io/react-brain/
10/10Repository-Beschreibung
10/10Topics — 12 Topics
10/10Wiki
Verwendete Eingangsdaten
topicsai-agents, cli, code-review, dependencies, developer-tools, expo, knowledge-base, mcp, mcp-server, migration, react, react-native
has_wikija
homepagehttps://heart-it.github.io/react-brain/
has_readmeja
has_docs_dirnein
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

45Gefährdet · 16 % des Gesamtindex

Sicherheitslage

31Gefährdet
Wie die Bewertung erfolgt
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 — keine Daten
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
1.5/2.5Contributors — project has 2 contributing companies or organizations -- score normalized to 6
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.5Lizenz — license file detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
0/5Packaging — keine Daten
1/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
0/5SAST — no SAST tool detected
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
5.2/7.5Vulnerabilities — 3 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate3,1
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): ci_tests, packaging, signed_releases. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
25/25Indirekte Abhängigkeiten ohne bekannte Advisories — keine indirekte Abhängigkeit trägt ein bekanntes Advisory
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories0
affected_packages0
assessed_packages1
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. Abgeglichen wurde die Laufzeit-Abhängigkeitshülle von npm:@heart-it/react-brain@0.9.1 — das, was die Installation des veröffentlichten Pakets nach sich zieht — mit 1 Paketen. Erreichbarkeit wird nicht analysiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.

41Gefährdet · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 82 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,82
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
0/11Statische Typprüfung
10/10Reproduzierbare Umgebung — lockfile
10/10Belegte Agentenpraxis — 86 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
2/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilespackage-lock.json
has_dockerfilenein
typed_languagenein
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configs
agent_commit_share0,86
toolchain_manifests
dependency_bot_commit_share0
Wie die Bewertung erfolgt
0/45Typprüfbarer Code — JavaScript ohne Typprüfungs-Konfiguration
55/55Handhabbare Dateigrößen — 0/33 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageJavaScript
largest_source_bytes39.936
source_files_sampled33
oversized_source_files0
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
20/20MCP-Server
0/40Lauffähige Beispiele
Verwendete Eingangsdaten
example_dirs
has_mcp_signalja
api_schema_files

Eckdaten

0GitHub-Sterne
1Mitwirkende
136Commits, letzte 12 Monate
6Tage seit letztem Push
14Releases
1Bus-Faktor
0offene Issues
npmPaket-Ökosysteme

Warnungen zur Datenerhebung

  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Weitere Details

OpenSSF Scorecard 3.1 / 10
3.1Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).Scorecard v5.5.0 · 2026-07-26 10:16 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
k. A.CI-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
6Contributorsproject has 2 contributing companies or organizations -- score normalized to 6
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
k. A.Packagingpackaging workflow not detected
2Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 2
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
7Vulnerabilities3 existing vulnerabilities detected
Direkte Abhängigkeiten 4
RegistryPaketVersionsvorgabeManifest
npm@heart-it/react-brain^0.9.1alias/package.json
npmyaml^2.8.1package.json
npmastro^7.0.0site/package.json
npmyaml^2.8.1site/package.json
Alle Abhängigkeiten nicht erhoben

Der aufgelöste Abhängigkeitssatz konnte für diesen Bericht nicht erhoben werden: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Abhängigkeits-Advisories 0

Die Installation von npm:@heart-it/react-brain@0.9.1 zieht 1 Pakete nach sich, direkt und transitiv: 0 tragen bekannte Advisories, davon 0 direkte Abhängigkeiten.

Keine bekannten Advisories betreffen die bewerteten Abhängigkeiten.

Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [
        "ai-agents",
        "cli",
        "code-review",
        "dependencies",
        "developer-tools",
        "expo",
        "knowledge-base",
        "mcp",
        "mcp-server",
        "migration",
        "react",
        "react-native"
      ],
      "is_fork": false,
      "size_kb": 5314,
      "has_wiki": true,
      "homepage": "https://heart-it.github.io/react-brain/",
      "languages": {
        "Astro": 133615,
        "Shell": 5340,
        "JavaScript": 366863
      },
      "pushed_at": "2026-07-20T08:31:48Z",
      "created_at": "2026-07-06T12:21:01Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-20T08:32:30Z",
      "description": "React & React Native decisions with receipts — a continuously verified corpus with a doctor CLI, migration planner, CI review gate, and MCP server for coding agents.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "JavaScript",
      "significant_languages": [
        "JavaScript",
        "Astro"
      ]
    },
    "owner": {
      "blog": "https://www.heartit.tech",
      "name": "heartIT",
      "type": "Organization",
      "login": "heart-IT",
      "company": null,
      "location": "India",
      "followers": 1,
      "avatar_url": "https://avatars.githubusercontent.com/u/26485266?v=4",
      "created_at": "2017-03-17T13:26:45Z",
      "is_verified": null,
      "public_repos": 15,
      "account_age_days": 3417
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.9.1",
          "kind": "patch",
          "published_at": "2026-07-20T08:31:40Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2026-07-16T14:26:40Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-07-16T13:21:25Z"
        },
        {
          "tag": "v0.7.7",
          "kind": "patch",
          "published_at": "2026-07-13T14:47:12Z"
        },
        {
          "tag": "v0.7.6",
          "kind": "patch",
          "published_at": "2026-07-13T14:42:32Z"
        },
        {
          "tag": "v0.7.5",
          "kind": "patch",
          "published_at": "2026-07-13T14:26:47Z"
        },
        {
          "tag": "v0.7.4",
          "kind": "patch",
          "published_at": "2026-07-13T12:19:17Z"
        },
        {
          "tag": "v0.7.3",
          "kind": "patch",
          "published_at": "2026-07-13T11:38:39Z"
        },
        {
          "tag": "v0.7.2",
          "kind": "patch",
          "published_at": "2026-07-13T09:46:50Z"
        },
        {
          "tag": "v0.7.1",
          "kind": "patch",
          "published_at": "2026-07-13T09:30:02Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2026-07-13T09:27:56Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2026-07-13T09:19:26Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2026-07-13T09:02:13Z"
        },
        {
          "tag": "v0.4.1",
          "kind": "patch",
          "published_at": "2026-07-10T12:30:37Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "2b9c39f2ac3a2ca5b96790b0fca7b442f3050693",
          "body": "…ripts\n\nThe release gate caught it as designed (alias-lockstep step). Local npm config\nhas ignore-scripts=true, so the root \"version\" script never ran on npm version;\nsync run manually here. Future bumps on this machine need\n`npm version <x> --ignore-scripts=false` (or run alias/sync.mjs by hand).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E5QaB3qeeU5CGQ4BXgivPz",
          "is_bot": false,
          "headline": "fix: sync alias to 0.9.1 — npm version lifecycle skipped by ignore-sc…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-20T08:31:40Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "835b50da617207d71a0d6479c2e638a9c4bd3dd2",
          "body": null,
          "is_bot": false,
          "headline": "0.9.1",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-20T08:29:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5545a5a38b9269adf6dff998a22b0b0770f0a60",
          "body": "doctor-memory: outcome-memory from the 2026-07-17 doctor runs (pre-dates this\nsession's harvests). firsthand-state: baseline keys for entities added by\ntoday's keeps (linaria/@linaria/* watch, reactbench feed) — no events pending.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E5QaB3qeeU5CGQ4BXgivPz",
          "is_bot": false,
          "headline": "chore: advance doctor-memory + firsthand baselines",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-20T08:29:27Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3a6ec196fdea1dcb1cc5d129df4aed6b10fb0ba6",
          "body": "…onomous-repro receipt\n\n47 links: 17-release roundup all previously dispositioned or routine minors, 3 content\nlinks already held (Margelo chat — third sighting this week, Rive rewrite, KMP-vs-RN).\nKeeps: Teamworks case study → BUILD reading (7 mini-apps, Metro → Re.Pack + Module\nFederation + shell \n[…]\n verify-diff 2/2 ✓ · lint clean · eval 137/137. Native Weekly\ncount 6→7.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E5QaB3qeeU5CGQ4BXgivPz",
          "is_bot": false,
          "headline": "harvest: Native Weekly #17 — Teamworks Re.Pack case study, Argent aut…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-20T08:21:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "766c0d898459845d3d909d34ee2e75b938e76b20",
          "body": "…g, Next.js scheduled security releases\n\n44 links, 4 pre-dispositioned by prep (incl. the morning's Margelo keep — firsthand\nbeat the newsletter). Keeps: ReactBench → AI-DEVTOOLS option row (React-web\nmodel-selection counterpart to RN Evals; react-doctor as verifier; launch post\nverified) · dx-style\n[…]\n7/137. React Status\ncount 23→24. Includes the prep-frozen bench fixture.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E5QaB3qeeU5CGQ4BXgivPz",
          "is_bot": false,
          "headline": "harvest: React Status #483 — ReactBench row, Linaria wind-down readin…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-20T07:59:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1d46dea844edd2bd2128282a205f9ef11d35147d",
          "body": "…e, 2 readings, RR v8 middleware named\n\nReact Digest #2325 (slug 2320→2325, non-sequential as expected): 12 links, 2 already\nheld, 1 fact — NAV's v8 row now names middleware-default explicitly (verified vs the\nofficial v8 post already in sources). Featured destructuring piece skipped off-scope\n(styl\n[…]\nverify-diff 6/6 ✓ · lint clean · eval 137/137. React Digest\ncount 17→18.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E5QaB3qeeU5CGQ4BXgivPz",
          "is_bot": false,
          "headline": "harvest: React Digest #2325 + firsthand 07-20 — shadcn React Aria bas…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-20T07:44:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f7e0553b47e127a3ff456f190c9977ab464eac25",
          "body": "The 2026-07-16 shakedown's firsthand pass flagged this (correctly declining\nto fix it out-of-scope): the option row asserted 'react-native-worklets 8.0'\nwhile npm's latest is 0.11.0 — likely a Reanimated-era version number that\nnever belonged to the split-out package. Re-verified vs the registry tod\n[…]\nready verified, and names its own\ncorrection (calibration is a feature).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "fix ANIMATION stale fact: react-native-worklets is 0.11.x, not '8.0'",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-17T05:57:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0b54c9460bf830042bd8092ed5a2deeb173b36ac",
          "body": "…ion, AbortController modernized\n\nDirected single-issue harvest (issue number confirmed from the page label).\nThree keeps, all receipts fetch-verified:\n\n- RB-E-OTA: Zepto's Delta — the self-hosted BINARY-DELTA lane (bsdiff/bspatch,\n  own S3 + Lambda/CloudFront routing keyed on a baked manifest) with\n[…]\ngreen. harvest-state: RN Rewind #49, count 49 (x49 in\nsources_digested).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "harvest: RN Rewind #49 — Delta OTA lane, Native SDK promoted lead→opt…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-17T05:24:36Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1f8b9fa170df28d842197ed0f1372615359a216b",
          "body": "…ed (38 of 44)\n\nOrganizing ideas: GAMES = 'a render loop, not a component tree — React\norchestrates, the loop draws'; ALT-FRAMEWORKS = 'the exit cost is the\ndecision — measure per platform, never in general' (SWM KMP-vs-RN asymmetry\nas the load-bearing evidence, no principle invented beyond it); NAT\n[…]\nconfidence: low) +\nRB-E-DATA docs pre-dating the ladder. npm test green.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "graduation pass #9 (final): GAMES, ALT-FRAMEWORKS, NATIVE-UI → review…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T15:09:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3a72ed90ed74ff796b7ae11260ab7b57863431ae",
          "body": "… of 44)\n\nOrganizing ideas: RN-VERSIONS = 'the version number is an architecture\ntimeline — your rung decides what code you may write' (existing 07-10 doc\nREWRITTEN to the frame; its entry-ungrounded claims dropped, full 5-source\nlist restored); CALENDARS = 'a virtualized list wearing a date grid';\n\n[…]\nc says so inline). Grounding gate PASSED;\ncounts 33->36. npm test green.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "graduation pass #8: RN-VERSIONS, CALENDARS, BROWNFIELD → reviewed (36…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T14:37:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "38b0de3b87b4a001e2e2c169d1ab3c5022ff90ce",
          "body": null,
          "is_bot": false,
          "headline": "0.9.0",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T14:26:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9cd5882ee058cf6c71b57d7418d0305885f6b031",
          "body": "Organizing ideas: POLISH = the entry's own 'app feels finished' checklist\nframe; SVG = 'one primitive underneath — Skia is drawing, not documents';\nP2P = 'no server inverts everything — keypair account, log database, swarm\nendpoint', with the scope boundary held hard (parts list, not a protocol\nguid\n[…]\nes (dual\nreading+source, entry had none). Counts 30->33. npm test green.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "graduation pass #7: POLISH, SVG, P2P → reviewed (33 of 44)",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T14:22:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2cefeb40fe2a24431e9aa3b68d9eab038ad1d7f0",
          "body": "Organizing ideas: MAPS = 'a tile economy, not a widget'; EDITORS = 'a\ndocument MODEL with a view attached — the toolbar is trivia'; NETWORKING =\n'the client is a commodity; the decision is the cache layer above and the\nnative lane below'. Grounding gate PASSED on all three; cannot-ground flags\nprese\n[…]\nmentor.yaml self-description the\ndrafting agent spotted. npm test green.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "graduation pass #6: MAPS, EDITORS, NETWORKING → reviewed (30 of 44)",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T14:12:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b596370d8de0a03723d899c5b201b4a649521a1f",
          "body": "Three long-form Explanation docs via the recorded method (organizing idea\nsupplied, grounding rule enforced, cannot-ground flags preserved as HTML\ncomments in each doc): A11Y = 'one semantic tree, two renderers', I18N =\n'compile the locale, don't ship the library', CHARTS = 'charts are lists\nwearing\n[…]\niant). Counts 24->27 reviewed across index/SKILL/README. npm test green.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "graduation pass #5: A11Y, I18N, CHARTS → reviewed (27 of 44)",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T13:59:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4a327c242b82489c786a135c1a0e5196993d07b8",
          "body": "- Routine gains the DEPTH CADENCE step: each weekly pass graduates ~2 drafted\n  entries (with the numeric-grounding gate) and challenges ~2 aging reviewed\n  ones — the corpus is the quality ceiling of every analyzer surface, and this\n  makes raising it a standing habit instead of a session event.\n- \n[…]\nnpm test 137/137. (harvest digest + --siblings deferred to the backlog.)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "sequence item 4: depth cadence in the weekly routine + doctor --brief",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T13:50:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "cd073138d64cb5846c92a6d844bd5b2bf99dcff3",
          "body": "…st visit\n\nPer-repo baseline of priority keys (tools/.doctor-memory.json, committed like\nthe other baselines): each run reports SINCE LAST VISIT — RESOLVED (last\nvisit's finding gone: confirmed), PERSISTING >=3 visits (escalates to a\ndecision: the exact 'decide --quiets=<key>' command is printed ins\n[…]\nor the mentor. Verified\nlive: ourpot visit #2 renders. npm test 137/137.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "sequence item 3: doctor outcome memory — the advisor remembers its la…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T13:47:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "07f634ca08f9bcc26f9ac3067edc4d77a4cc8d1d",
          "body": "harvest prep now writes tests/fixtures/harvest/<source>-<n>-inventory.json\nalongside each new manifest — and because prep runs BEFORE any corpus edits,\nthe frozen corpus context is pre-harvest by construction: the triage bench's\ncontamination guard falls out for free. Every prepped issue becomes a f\n[…]\n + cheaper-model swaps become answerable as gold n grows). npm test 137.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "sequence item 2: bench gold auto-freezes at prep time",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T13:44:26Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "29c42c4f96b648519cb4cd812556256ea8fb7558",
          "body": "… rows\n\nSequence item 1 of the smarter/efficient plan. 'harvest prep <source>':\n(1) deterministic next-issue detection via url_pattern probe (TWiR +\nReact Status wired; slug/RSS sources degrade to guidance) — kills the\nissue-number-hallucination hazard; (2) inventory cross-referenced against\ncorpus \n[…]\nin harvest-lib, eval-pinned (134->137). Skill step 1 +\ncli help updated.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "harvest prep: pre-triaged manifests — the agent judges only the novel…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T13:35:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "86bb79b346add7cad40aff512051801f83966e41",
          "body": "Website_UI/ (AI-generated dashboard/diagram mockups from the site design\nphase) + a stray logo variant PNG. Referenced by nothing — site/ carries\nits own assets; og.png is generated. Last item of the consolidation pass.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "remove design-scratch images from repo root (1.4MB)",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T13:25:52Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9ed12d6cf4cce78bfa6ec090ea96f141a45e68e0",
          "body": "… a lint invariant\n\nThe v0.8.0 release run exposed a 3-day latent bug: the Bun-reading insertion\ninto RB-E-AI-DEVTOOLS consumed the next item's '- title:' line, leaving\nduplicate url/by/what keys in one map. The tools' tolerant loader served a\nFRANKEN-READING (Bun's title, Expensify's url/what) whil\n[…]\n (Complete, exit 0). npm test 134/134.\nv0.8.0 retagged onto this commit.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "fix: duplicate-key entry broke the site for days — strict-yaml is now…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T13:21:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d9e6b5fc5abb3f3fb05b9891ca9c82f301230c06",
          "body": null,
          "is_bot": false,
          "headline": "0.8.0",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T13:13:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0a86dba52ba50ee8f1208829cb45b45d803195c1",
          "body": "Complexity pass (maintainer-requested):\n- ONE SCHEDULER: the Monday cron (pulse+signals+census) is retired; the trio\n  now runs as the deterministic Tier-1 pre-step of the weekly launchd harvest\n  (local-harvest.sh) — baseline updates land on the harvest/<date> branch for\n  review like everything el\n[…]\n), root design images (awaiting delete-vs-move call).\n\nnpm test 134/134.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "consolidation: one scheduler, one routine doc, one state-file map",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T13:13:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "699c752bf79525110c99bf34ef70526d1c5f3057",
          "body": "…s stated, both sides quoted\n\nMaintainer feedback: analysis was timid (\"WORTH A LOOK — not necessarily\nwrong\"). The corpus always had the ammunition — every option row carries\ntradeoff text with quantified axes — doctor just never said \"you use X;\nY beats it here\". Now it does:\n\n- SWAP CANDIDATES: f\n[…]\natching,\npick-text presence, no-<Feature>/no-wrong-lane upside filters).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "swaps & upside: the aggressive layer — head-to-head alternatives, axi…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T13:03:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3a12e0095656fb6147ed5c7bcdea9a0479e603da",
          "body": "…d upgrade feasibility\n\nThe last category of analyzer blindness: doctor knew only the ~200 packages the\ncorpus curates — ~35 of ourpot's 60 deps were invisible even to health checks,\nand \"can we upgrade RN yet?\" was answered by vibes and broken branches.\n\nharvest-lib gains the registry-analysis prim\n[…]\n cold;\nDEP HEALTH's first real find: blind-pairing silent for 21 months.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "registry preflight: dep health beyond the curation boundary + compute…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T12:46:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6eefb42058a4d780acd152cdbc3c2b1e72085927",
          "body": "…mbers being overruled\n\nThe universal advisor failure: repeating suggestions the team already rejected\nuntil nobody reads the report. The pieces existed unconnected — decide writes\nliving ADRs with premise blocks, checkAdrs premise-checks them — but findings\nnever consulted decisions. Now:\n\n- ADR fr\n[…]\ned adrs for its decisions\nsection — hoisted mine instead of redeclaring.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "acknowledged findings: doctor and decide close the loop — advice reme…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T12:31:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "34a64a3aab6378a47983993a47dc8785fdce8409",
          "body": "… re-ranks the advice\n\nEvery analyze tool read the repo as a snapshot; suggestion quality lives in the\nstory. trajectoryScan() in detect.mjs (git-only, zero LLM, graceful on non-git):\n\n- CHURN: one `git log --numstat` pass (~13mo) classifies files live (<90d) /\n  aging / dormant (>1y). computePriori\n[…]\nfiles detection, remaining list, finish\npriority, and --no-history skip.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "doctor trajectory: the time axis under every suggestion — git history…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T12:03:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b6aa1dfa21a377b9fed2bdac4f4307bfba4ee6a8",
          "body": "…ified additions\n\nThe maintainer-requested back-audit of the pre-manifest era (deterministic\ninventory of 7 issues diffed against corpus + manifests; #290 proved 57/57\naccounted, the six older issues leaked ~350 links, triaged down to this delta;\nfull dispositions in tools/harvest-log/twir-backfill-\n[…]\n drafted). Gates: npm test 111/111;\nverify-diff 15/15 added receipts ok.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "backfill: TWiR #284-289 audit applied — RB-E-SHEETS gap entry + 6 ver…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T11:26:04Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6afe1b6b96189b89d99facf2e8b95f115511f2d9",
          "body": "…rroborated, one dedup-miss corrected\n\nHeadless run on harvest/2026-07-16. All 6 newsletter sources + firsthand checked; only RN Rewind\nhad unprocessed issues, and every substantive item in them turned out to already be in the corpus.\n\nFIRSTHAND (step 0): 6 npm dist-tag events since last run (reanim\n[…]\nate files advanced. Gates: coverage ✓ ×3, verify-diff --base=main\n✓ (0 added URL claims), watchlist run, npm test ✓ (lint clean, 111/111 eval).\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "weekly harvest 2026-07-16: firsthand quiet, RN Rewind #46-48 fully co…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T10:25:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b4b9f68d8bc2d8fa0fb677c573d763984012bbb4",
          "body": "…pose-only, launchd\n\nMaintainer declined granting the Claude GitHub App repo access; the cloud PR\nroutine is PARKED (note in cloud-harvest-routine.json) and replaced by the\nlocal equivalent the June ledger originally called for:\n\n- tools/local-harvest.sh: creates harvest/<date> from main BEFORE the \n[…]\nsame manifests as the cloud\nvariant — minus any third-party repo access.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "local weekly harvest: the no-GitHub-App autonomy path — headless, pro…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T10:09:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ff236d81bed52b864ff0d8de233c0e5c4abc3bc9",
          "body": "… wired into the routine\n\nThe bench diagnosed keep-aversion (all 8 gold keeps skipped); this ships the\nexperiment AND the fix. `harvest bench --advocate` runs a second, fresh-context\npass over the first pass's SKIPS ONLY with the opposite mandate (argue items\nback in; the Bun-rewrite adversarial-rev\n[…]\ns rationale).\nReinstated rows are marked in manifests. npm test 111/111.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "advocate pass: first measured intervention on harvest judgment — Δ+7,…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T08:51:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c6f5de3f49cf641f84dd5f9089a405bc596a13a9",
          "body": "…nnet-5 baseline 59/100\n\nThe last unmeasured faculty. Every mechanical layer is gated (coverage,\nverify-diff, tripwires, lint/eval); triage JUDGMENT had no measure. Now:\ntests/fixtures/harvest/twir-290-inventory.json freezes the issue's 57-link\ninventory + the corpus context PINNED AT ITS PRE-HARVES\n[…]\ne-bench.yml = manual CI trigger (repo API-key secret). npm test 109/109.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "harvest bench: adjudicated manifests become a judgment benchmark — so…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T08:36:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "94d1b7741a09086ece0905f0522d7dbf6f8b0a8f",
          "body": "…nditions\n\nCompletes the session's ladder — triage→manifest, extraction→coverage,\nrecurrence→watchlist, verification→verify-diff, and now WHEN-TO-ACT→tripwires.\nEntries gain a lint-validated 'tripwires:' block ({when: {pkg + atleast x.y.z |\ndeprecated true}, then, added}) encoding what the prose alr\n[…]\noutine prompt (⚡ = mandatory work items; wire new caveats at keep-time).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "tripwires: the corpus's standing caveats become executable release co…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T08:13:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "55e613694d5c43b5da1fe1ba0444dc5f9de0777e",
          "body": "…ed, not claimed\n\nThe last prompt-enforced discipline (fetch-verify every kept fact) becomes\nmechanical: react-brain-verify-diff.mjs re-verifies every URL the branch ADDS\n(entry reading/sources/watching/receipts, long-form docs, manifest kept rows —\nskipped-row URLs correctly exempt) via direct fetc\n[…]\n(idempotent run); npm test\n98/98. Routine prompt + skill + docs updated.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "harvest verify-diff: receipts become a CI gate — 'verified' is comput…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T08:00:03Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fc7576ca4bf398a68d00247a026574058f305b5f",
          "body": "RemoteTrigger create body for the weekly propose-only harvest PR agent\n(Thu 09:00 IST; sonnet-5; firsthand → newsletters → manifests → npm test →\ngh pr create). Creation attempt 2026-07-16 blocked on 401: user must connect\nGitHub / install the Claude GitHub App on heart-IT/react-brain first.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "cloud harvest routine config — ready to create once GitHub is connected",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T07:49:37Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "73777982abeaffef268699b51aa0eb9b47e9e1f8",
          "body": "…emote to discovery\n\nDerives a first-party watch graph from the corpus itself (zero new knowledge,\npure derivation — the doctor/learn/stack move applied to acquisition): 189 npm\npackages from detect+migrate rows (dist-tag changes + deprecation-flag flips,\nvia abbreviated registry metadata), 37 GitHu\n[…]\nstep 2\n(firsthand FIRST), /harvest skill step 0. npm test green (98/98).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "harvest firsthand: the corpus watches its own sources — newsletters d…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T07:45:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6ad011dd1858668144f811d6ff3d51f305e1a5cd",
          "body": "… passes\n\nThin router, not a copy: canonical method stays in tools/upkeep-routine.md +\nharvest-state.json + the harvest cli verb; the skill guarantees any session\n(local, resumed, or cloud-cloned) loads the same sequence on 'update self\nwith <url>' instead of relying on path-scoped memory recall. Ca\n[…]\ntive + new-path summary), with the cloud variant (PR description) noted.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "add /harvest project skill — deterministic entry point for newsletter…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T07:33:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7c98c2c8c4b5b1ed15a81b4ce29135808765e7bd",
          "body": "…erage / watchlist\n\nCloses the extraction layer as the last invisible failure point of a harvest pass:\ntools/react-brain-harvest.mjs (zero-LLM, zero-dep) fetches an issue page and lists\nEVERY link mechanically (inventory), gates the disposition manifest against the page\nby set-difference (coverage —\n[…]\nlint clean — it caught the first claim draft at >260 chars; eval 98/98).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "react-brain harvest: deterministic scan scaffolding — inventory / cov…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T07:30:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3d246767daaf039ef94381e712a3a38604ebe392",
          "body": "… reasons corrected\n\nSolidJS 2.0 skip reclassified cap→pre-ship (npm: latest 1.9.14, 2.0 still beta.18);\nthoughtbot skip reclassified to unverifiable-403 (WebFetch + curl-UA both walled) with\na recorded NAV facet note (JS-stack vs native-stack uncovered) as the reopen signal.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "spot-check twir-290 manifest: 5 already-held verified by grep, 2 skip…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T07:17:23Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8584a6aeba5685a327b45cca2bec07a8eac66f59",
          "body": "…iewable\n\nUser audit of TWiR #290 found the gap: skip decisions were invisible, so a wrong\nskip looked identical to a silent miss. (Of the two flagged URLs, the Margelo Rive\npiece was already held in ANIMATION; the neciudan compiler explainer was a cap\nskip — overturned on review and added to REACT-\n[…]\nely as the\ntemplate (45 items). npm test green (lint clean, eval 98/98).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "harvest process: per-issue disposition manifests — triage becomes rev…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T07:13:54Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b324d6601a4ab4f01eaaddf3703b3f254d3f885d",
          "body": "…26 Tabs stable, Bun Zig→Rust, WG governance\n\nGap-filling entry RB-E-AUTH (auth/identity had no home in 42 entries), triggered\nby Better Auth joining Vercel 2026-07-07 (first-party post verified; Auth.js\nstewardship/maintenance lanes corroborated vs npm registry). Wired: TOC slot,\ncapability_map row\n[…]\n, TWiR ×24, harvest-state #290.\nnpm test green (lint clean, eval 98/98).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01ULx8HeomnaFiYLMimWrFxx",
          "is_bot": false,
          "headline": "harvest: TWiR #290 — RB-E-AUTH entry (Better Auth→Vercel), Screens 4.…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-16T07:08:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "136ab763bc9965f5bf21fa17d30c7c3c94a1f906",
          "body": null,
          "is_bot": false,
          "headline": "0.7.7",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T14:47:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ccd9a3b1b4787ef12bdd838b8f3372c8eb3b38d8",
          "body": "…id-phrase\n\nRegistry truncates descriptions at 255 chars; the scoped desc was 257 bytes so\nnpm showed '…and a 9-tool'. Root now 196 chars, alias 237; sync.mjs guards the cap.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "description under npm's 255-char registry cap — both packages ended m…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T14:45:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4112805aee6a89e051a9279b4c245d2506ee959f",
          "body": "…ocally\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "0.7.6: sync alias — ignore-scripts=true suppresses the version hook l…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T14:42:32Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1cf2fd5603ddc6f73b2337896f496979a54e241f",
          "body": null,
          "is_bot": false,
          "headline": "0.7.6",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T14:40:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "361037c9d4340e723e0cf7190802ed35a15c5d1a",
          "body": "…ublish\n\nalias/sync.mjs mirrors root version+dep-pin+description into alias/ and runs\non every 'npm version' (staged into the release commit); release.yml verifies\nlockstep and publishes both packages via trusted publishing. Needs one-time\nTP config on npmjs.com for the unscoped name.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "release: alias package rides the pipeline — synced version/desc, CI p…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T14:37:24Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "67eb4c62a73351e8d8ba97b9d7161fd7f261e110",
          "body": "Makes 'npx react-brain doctor .' real and claims the name before launch.\nThree files; published manually (trusted publishing can't create new names).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "alias: unscoped react-brain package — shim onto @heart-it/react-brain",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T14:31:13Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b88e45dc7a555d1854b21b9970924960dfd74175",
          "body": null,
          "is_bot": false,
          "headline": "0.7.5",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T14:26:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "358f0f320f3cb272d441fe92d3cfa446f8b48a01",
          "body": "Bare 'npx react-brain' 404s for fresh users — the unscoped npm name\ndoesn't exist; only the local bin resolves that way. 21 occurrences.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "site: scope all copy-paste npx commands to @heart-it/react-brain",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T14:20:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "452c86de8f8c000177750c500b5ac2f6df495df1",
          "body": "…elements\n\nAstro trims whitespace (JSX-style) when a newline sits adjacent to an inline\ntag or expression: 'them:held', 'intocontext-keyed', '—42 predictions'.\nJoined every text/element boundary that broke across source lines (12 pages)\nand added .badge + .badge margin for adjacent-badge pairs.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "site: fix Astro inline-whitespace collapse — glued badges and inline …",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T13:47:28Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b870678dd1da5a42f58a17556a45333a549153c4",
          "body": "The number the system was built to produce: claude-sonnet-5 alone\nanswers 70% fresh and hedges 12/33; with the corpus injected as\ncontext it answers 94% fresh, hedges 2/35, 0 errors. The corpus\ndoesn't just correct the model — it lets it stop hedging, because\nit has receipts.\n\nRun via the operator's\n[…]\n API runs\nwith temperature 0 remain the reference and are one $5 key away.\n\nHome page line updated from results-pending to the measured numbers.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "bench: first published results — sonnet-5, bare vs with-corpus",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T13:27:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "08896a368db6c87215bf6968235ff9c42b291d58",
          "body": "…, results pending\n\nThe 'measure it' line implied leaderboard data exists; until the first\nfunded run it's an empty page under a bold claim (the most roastable\ngap pre-launch). Reframed as the honest invitation: bank + rubric are\npublished, one command with your own key, run it before we do.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "home: benchmark framing matches its status — published + reproducible…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T12:59:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "66480891b2df07976ba84c97543af5aca256f5ab",
          "body": "…b machine paths from upkeep-routine\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "add the LICENSE file package.json already promised (Apache-2.0); scru…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T12:50:42Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ddc6d99d5ecb00ab35c7d3beed600d0d2cefcb20",
          "body": "The logo's baked-in navy background made a raw inline image read as a\nmismatched patch — rendered as a 22px rounded chip with a hairline\nborder it reads as an app icon instead. Dedicated 8KB brand-64.png so\npages don't load the 244KB master; the ❯ prompt glyph keeps its homes\nin the search box, console, and OG card. Verified via preview\nscreenshot.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "header: brand mark as a rounded chip next to the wordmark",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T12:47:09Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "55a676d0c738fa9fbfdd244c0f1ab86e1f8fbc70",
          "body": "…mode\n\npagefind-ui.css loads after the page's style block and re-declares its\nlight-theme variable defaults on :root, so the site's :root mapping\nlost the cascade — white input, near-invisible gray result text,\nbrowser-default yellow marks, bright borders (user screenshot). Vars\nnow scoped to the #s\n[…]\nn highlights, result titles\nhead-font bright with accent hover, excerpts muted, hairline result\nseparators, dark input with visible placeholder.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "search: fix Pagefind dark-theme cascade — the UI was rendering light-…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T12:41:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1275828c4686a9ebf1ef3563712f4016b7cf438b",
          "body": "The discovery layer named and thanked (React Native Rewind, This Week\nin React, React Status, React Digest, React Weekly, Native Weekly),\neach linked with its issues-digested count pulled live from the corpus\nmeta so the numbers never drift. The framing line does double duty:\nnewsletters surface LEA\n[…]\ny sources, and nothing here is reviewed\nor endorsed by them (thank, don't borrow authority). Footer gains a\n'sources' pointer next to changelog.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "methodology: Sources & thanks — credit the six newsletters, precisely",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T12:37:54Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4a5e2d744d17f900905613efb4686357ba787677",
          "body": "…ADME\n\nExtracted the circuit-brain + React-atom mark from the supplied brand\nsheet (react_brain_logo_variant_1 (5).png, kept in repo root as the\nsource): site/public/logo.png (425px master), favicon-32.png +\napple-touch-icon.png (replace the emoji data-URI favicon), the OG card\nre-rendered with the \n[…]\nxt column narrowed, credit\nmoved top-left), and the README gains the logo top-right (served from\nthe pages URL so it renders on GitHub and npm).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "brand assets from the heartit logo sheet: logo, favicons, OG mark, RE…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T12:33:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "81fd5c1ea5199a23ff796b397349454174c5c465",
          "body": "A 'this tier holds 50%' strip on a low-confidence entry read as a track\nrecord when it rests on n=1. Now: tiers with <3 grades render as\n'early: 1/12 of this tier graded so far (0 overturned)' on entry pages\nand get an '(early — n=X)' qualifier in the scorecard table; both\nsurfaces state the overtur\n[…]\nng-the-numbers paragraph:\na modest low-tier score is calibration WORKING (low confidence\npredicts churn); the tested claim is the tier ordering.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "scorecard honesty: early-tier qualifiers + the zero-overturns headline",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T12:26:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "555cb5c1da38718fdc122cb58e3e6720cf37ee31",
          "body": "…readme)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "package.json: homepage back to the site (something normalized it to #…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T12:22:06Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "68bc321a79119a819fd7a5b134fc092eb5c65bc7",
          "body": null,
          "is_bot": false,
          "headline": "0.7.4",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T12:19:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "423e5b1f9526d7f7bfdb038d1acbe89ec2cbd336",
          "body": "… OTA\n\nFive long-form Diataxis Explanation docs (template held; organizing\nideas: strictness-as-boundary-discipline + the-compiler-changed-engines\n/ data-shape-x-secrecy / two-keyboard-clocks / three-media-problems-\ndont-fork-the-pipeline / OTA-is-your-rollback-story). Drafted by three\nparallel agen\n[…]\ns stop being\nnagged about MMKV; no web storage guidance is held yet - noted).\n\nnpm test green (98/98); site builds with all five docs rendering.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "graduate 5 entries -> reviewed: TYPESCRIPT, STORAGE, KEYBOARD, MEDIA,…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T12:16:03Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e42bb1cb9755022b3e80a94a91ef2f43ff5e1c92",
          "body": "…e stats row\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "og card: move the heartit.tech credit top-right — it collided with th…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T11:54:15Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e27edebc8d7187086f1de27f97ff07ceb9e8de64",
          "body": "…, README, package.json author/homepage, OG card credit\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "attribution: created by heartit (https://heartit.tech/) — site footer…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T11:53:16Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4bbacdd91bfd5701c30702804df39c7ab6f1bb44",
          "body": "invitation, copy sweep, console welcome, freshness ticks\n\nThe ten-question pass, honest answers applied:\n\n- og.png (1200x630, rendered from an on-brand HTML card via headless\n  Chrome) + og:image/twitter:card metas — shared links stop rendering\n  as bare text (the cheapest startup-polish lever there\n[…]\n\n  critique didn't survive contact with the CSS), light theme, graph viz\n\nog:image origin is hardcoded pending the custom domain (noted inline).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "site polish batch: OG card, calibration strip, cited-by, benchmark",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T11:48:42Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "caf3ebcb1442c43651276e5c7d47fcdc0e77ffa8",
          "body": null,
          "is_bot": false,
          "headline": "0.7.3",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T11:38:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6bf81c86382d17890242afa082a8429e1dfa131",
          "body": "…6-06-25)\n\nSitemap diff: 10 posts, 9 already cited; the one new post\n(rewriting-rive-react-native-with-nitro-modules, 2026-07-09) lands in\nANIMATION as option + when-clause + tagged reading:\n\n- registry-verified the real package story the post blurs: the Nitro\n  rewrite ships as NEW scoped @rive-app\n[…]\nnto an\n  0.x line is churn — WATCH noted in the entry for 1.0/formal\n  deprecation\n- README + site link the npm package page (user-supplied URL)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "harvest: Margelo blog pass — Rive Nitro rewrite (1 new post since 202…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T11:10:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "667bab8d6b3c9a1ddd70d71fdde80b20ee72aea7",
          "body": "The second external review re-litigated much of what shipped today;\nverification found 7 real kernels — this lands the 6 that need no\ncredentials (the GitHub repo description is the user's one manual\npaste; the npm description ships with the next release):\n\n- identity propagates: package.json descri\n[…]\ndates, no vaporware),\n  linked from the About cluster and the console's go command\n\nBuild clean; all features grep-verified in dist; eval 98/98.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "identity + decision-first batch (review-2 verified gaps)",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T11:02:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "350bc0bbcdafd52cd0228ec99ed2bac3ac7307a6",
          "body": "Three parallel curation agents over disjoint entry sets, then a\nverification pass (gate green, all dep gates validated against detect\nrows / real npm names, diff is 78 pure insertions across 23 files —\nzero deletions, nothing reflowed).\n\n60 of 125 reading/watching items now carry claim: + applies_wh\n[…]\n-by-design recognition),\nCLI/MCP ask routing, the site reading page's lead lines, and the\nconsole — all grow together from here at harvest time.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "corpus: claim-tagging pass — 21 -> 60 conditional-advice readings",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T10:28:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f1bbe3c8b52fd6e8b3f6788e6ce2fb1b7a7877bd",
          "body": "…hots\n\n.github/workflows/bench.yml — workflow_dispatch: runs both benchmark\narms (bare model / model+corpus) and commits the results JSON, which\nredeploys /benchmark with data. Uses the ANTHROPIC_API_KEY repository\nsecret: encrypted, write-only, masked in logs; sent only to\napi.anthropic.com by the \n[…]\nught\nreal velocity: Expensify adopted Rspack (dropped webpack), Bluesky\ndropped ESLint, since 2026-07-10. New logs gitignored + tarball-negated.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "bench workflow (one-click, secret stays private) + weekly trend snaps…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T10:17:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "765f261bb57772f99262658f4c2b93a8565c195a",
          "body": "…ates come from git log, which a shallow clone silently empties\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "pages: full-history checkout — /changelog and per-entry re-verified d…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T10:10:31Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "abf4916627d3f26f203017314ee7cf55f175229d",
          "body": "… matrix\n\nThe audit's \"intelligence layer\", built the static-site way — every\nfeature deterministic over data the corpus already holds; no chat\nmodel, no backend:\n\n- doctor page: fit tally line (aligned/contextual/review) + MIGRATION\n  PLAN — the per-entry migrate: rules ship in the page data and ar\n[…]\non; the related-decisions\nedges are the substance). Build clean; inline doctor+console scripts\nnode --check'd from dist; features grep-verified.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "site: phase 3 — migration plans in the browser, ask routing, evidence…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T10:07:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1564cc57d067dc350ab50ccf2a75d24514bb70d7",
          "body": "…tates\n\n- sidebar bottom links grouped into Tools (stack composer, decision\n  records, census, staleness bench) and About (architecture, changelog,\n  methodology) with quiet label-caps subheads; mobile nav keeps the\n  flat list\n- reading page: every item now leads with the corpus's distilled claim\n \n[…]\nitle across all hairline row lists\n\nBuilt locally, verified in dist (Tools/About subheads render, 122\nreading leads, claim-led items confirmed).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "site: phase 2 — IA clusters, reading skimmability, table hierarchy, s…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T10:00:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fdbf037f63a831b89552cd9321a2b1959e32b3c0",
          "body": "The product was ahead of the pitch — the site said \"encyclopedia\" while\nshipping graded forecasts, dated verification, census evidence, and a\nworking analyzer. Phase-1 slice of the v2 audit, filtered through the\nquiet-minimalism bar and reality:\n\n- hero: \"React decisions, with receipts.\" — why-it-ex\n[…]\nwalls, invented trust chips (\"Verified by React Team\"), AI chat.\nBuilt locally (node 22 finally >= astro's floor) and content-verified\nin dist/.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "site: reposition as an engineering-decision platform (audit phase 1)",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T09:56:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "85b907ec78843b1ed5b5be19e0828a4b74e6ff71",
          "body": null,
          "is_bot": false,
          "headline": "0.7.2",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T09:46:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a88deafa0bc2ba5fa742e90e37978e86511ec7e1",
          "body": "Working a real ticket against ourpot flipped it: all 4 Search.tsx\nScrollView+map flags were HORIZONTAL pill/filter bars (bounded, the\nlegitimate ScrollView case) and the results list was already on\nFlatList - the app's list hygiene was better than the heuristic. The\nrule now requires a vertical Scro\n[…]\nded\nverticals (CurrencyPicker's 15 curated codes, About, RecentCrashes) -\ncorrect leads-for-judgment. rn-smells fixture still fires; eval green.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "LISTS rule precision: exclude horizontal ScrollViews (ourpot dogfood)",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T09:42:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3f6ba4180fd40634f8b7d18dea30f2bdca1e015e",
          "body": null,
          "is_bot": false,
          "headline": "0.7.1",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T09:30:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0de971f41d69eae1e8a4da62e01121cfcfcd5e77",
          "body": "react-brain query \"why is my LCP bad after SSR hydration\" tokenized the\nwhole quoted argv element into one garbage token -> \"no entry or reading\nmatches\". searchReadings now splits terms on whitespace before\ntokenizing (robust for every caller) and cli query splits argv words for\nsearchEntries too. Eval 96 -> 98: the exact quoted-sentence shape at\nboth the function and CLI layer.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: quoted-sentence query routing (CLI passed the sentence as one term)",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T09:30:01Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "62c7724454aece72d85558b2dbf0073ea3bbdfb6",
          "body": null,
          "is_bot": false,
          "headline": "0.7.0",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T09:27:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e4a5d52aa55ca07b5e4dbca599f907806834780",
          "body": "…ITIES\n\nsearchReadings() (detect.mjs): BM25-lite lexical scorer over the ~130\nreading/watching title+what+claim docs — zero-dep, built on demand,\ntrailing-s folding, >=2-token-hit floor. Free-form questions now route\nto the READING that answers them (\"why is my LCP bad after SSR\" -> the\n3perf hydrat\n[…]\nype) leads with Animated->\nReanimated + smells; ourpot (production) leads with expo-image/MMKV\nsupersessions then the census-weighted STATE gap.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "roadmap #5 + #7: question routing over annotations + doctor TOP PRIOR…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T09:26:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e794fe49f73b68786260999f67cc030bb3aaf1ac",
          "body": null,
          "is_bot": false,
          "headline": "0.6.0",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T09:19:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c098914d6354df41fa7f2cc5bca2f00d16e5765",
          "body": "react-brain review <repo> [--base=<ref>] [--ci] [--json] — doctor reviews\nthe repo, review reviews the CHANGE:\n\n- DEPENDENCY DELTA vs base: adds matching a dead/deprecated migrate rule\n  or a retired-guard detector label are BLOCKING with receipts (adding\n  CodePush in 2026 fails CI); superseded-rul\n[…]\ncontained tmp git repo (clean-diff pass, blocking add fails the\n  gate, new-file smell flagged, pre-existing smell in touched file\n  suppressed)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "review: diff-scoped corpus review — the CI-able layer (9th MCP tool)",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T09:17:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "292a2a9ec961cb0a17f7fc091d8ea0c63d376138",
          "body": "…ed plan\n\nreact-brain migrate <repo> (CLI verb + 8th MCP tool) — the roadmap's #3:\n- per-entry migrate: rules (11 across 9 entries), each a restructured\n  VERIFIED corpus fact with receipts: CodePush dead-service, expo-av ->\n  expo-video/audio, vector-icons monolith + @expo/vector-icons -> scoped\n  \n[…]\ndder,\nTS7 bridge, AsyncStorage/Image/Animated supersessions); legacy-rn ->\nCodePush dead + ladder hoisted, FlashList v2 correctly blocked on it.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "migrate planner: installed versions x corpus version-facts -> sequenc…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T09:11:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "dace4f0ff983c1363d2547171686be2aef9ca26b",
          "body": null,
          "is_bot": false,
          "headline": "0.5.0",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T09:02:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a2e9c90dcae6507015064d1f4ac9c9c4c134125",
          "body": "…ero-LLM)\n\nreact-brain map <repo> — the repo pinboard: one deterministic index line\nper source file (corpus-domain tags from detector imports + per-file\ndetect_source smell hits (gated), external imports normalized to package\nroots, exports, LOC) plus an inverted DOMAINS -> files index. An agent\nans\n[…]\n<1/3 of full, map extraction pinned on\nthe rn-smells fixture (exports, scoped-import roots, STORAGE tag,\nLISTS/KEYBOARD smells, inverted index).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "map + query capsules: the token-efficiency layer (Bytebell concept, z…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T08:57:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "bbaa0b7fc6f8fe0c252bcd8ab88931a7c0ea7516",
          "body": "… tools\n\nSuggestion accuracy (the headline):\n- doctor WORTH A LOOK/GAPS resolve when-clauses against the repo context\n  (stage/expo/bare/p2p/pear/shell + detected-lib tokens) instead of the\n  truncated generic default; --json rows carry `resolved`; dropped the\n  bare 'web' token (false-matched \"huge\n[…]\nxit codes pass through (no stack traces)\n- evidence/stack: skipped repos + missing RECIPE ids reported\n\nnpm test green (lint clean, eval 64/64).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "production-grade pass: 2-agent audit -> 20+ verified fixes across all…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T08:37:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "eef7184b43f05c76811cb8c2d3f14267b4047aeb",
          "body": "…w source rules\n\nThe corpus now talks about the target repo, with citations:\n\n- readings gain optional claim: + applies_when: {deps, absent_deps,\n  platforms, stages}; adviseReadings() in detect.mjs intersects tagged\n  readings with analyzeRepo() -> doctor's new FOR YOUR STACK section\n  (pretty + --\n[…]\nmoization in 42 files + hand-rolled\nforms in 28 files; ourpot got 5 cited claims incl. missing\nkeyboard-controller and production observability.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "doctor intelligence: conditional-advice readings + census join + 8 ne…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T08:19:50Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a11b41815f791e0bc10fb819f77f11c44c8036a9",
          "body": "- NAV: performance.dev ChatGPT teardown reading (RR7 framework mode at\n  billion-user scale; 4 independent signals this week)\n- FORMS: upskills.dev \"React Forms Done Right\" reading (native React 19\n  actions vs form-library decision arc; entry had 1 reading)\n- MAPS: @vis.gl/react-google-maps 1.9 opt\n[…]\nnouncement)\n- counts: Status x23, Digest x17, React Weekly x21; harvest-state notes\n  Digest archive moved to /newsletters, slugs non-sequential\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "harvest: React Status #482 + React Digest #2320 + React Weekly #28",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-13T07:43:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a8c46c1e268ce556142d3c4f4ba5a47e39c4799a",
          "body": "…ngs with 6164e2d)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "pages fix 2: astro.config reads ASTRO_BASE (the config half that belo…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T12:41:00Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6164e2de6bef43e8f8d2900cd26c589a6edafe6c",
          "body": "…efind\n\nbuild script is `astro build && pagefind --site dist`, so\n`npm run build -- --base /react-brain/` appended the flag to pagefind (unknown\nflag, fast fail). astro.config.mjs now reads ASTRO_BASE (default /, local dev\nunchanged); the workflow sets ASTRO_BASE=/react-brain/. configure-pages passed\nthis run - the Settings toggle is live.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "pages fix: env-driven base path - the npm-run flag was landing on pag…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T12:40:32Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "94ff41ae3db892598f1005448fbc3bd22dc9baa3",
          "body": "…s; enabled via Settings)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "pages: drop enablement attempt (workflow token cannot administer Page…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T12:37:52Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c6af1039cfbaa0f5325463b2f765a39e51c08fa9",
          "body": "Build mirrors the proven ci.yml site job (node 22, site/npm ci) + the verified\nbase-path build (--base /react-brain/; all links route through href(BASE_URL)).\nconfigure-pages enablement:true attempts to auto-enable Pages with source\nGitHub Actions; upload-pages-artifact + deploy-pages with the githu\n[…]\n-pages\nenvironment. Every harvest commit now auto-redeploys the site - /census,\n/scorecard, and entry pages stay exactly as fresh as the corpus.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "pages workflow: deploy site/ to GitHub Pages on every main push",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T12:33:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "edcf0cc0969bc9d39bac90ee8ce9144d768ec7ff",
          "body": "… tree\n\nThe publish log showed MODULE_NOT_FOUND sigstore from libnpmpublish/provenance.js\n- i.e. the OIDC exchange SUCCEEDED (trusted publisher config is correct) and npm\ndied generating provenance because `npm install -g npm@latest` over the bundled\nnpm left a hybrid install missing sigstore. Node 24.18 bundles npm 11.6+, past\nthe 11.5.1 OIDC floor - the upgrade step was never needed. Replaced with a\nversion echo.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "release fix 2: do not self-upgrade bundled npm - it corrupted its own…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T12:30:37Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "422129663df0814879f7a843c02796ea9b109cbb",
          "body": "…auth\n\nFirst flight: verify green (gate + tag-match), publish step failed. setup-node\nregistry-url writes an .npmrc _authToken=\\${NODE_AUTH_TOKEN} line; a token line\npresent = npm uses token auth (unset -> 404) instead of the trusted-publishing\nOIDC exchange. Removed; npm 11 discovers the OIDC credential itself.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "release fix: drop registry-url so npm takes the OIDC path, not token …",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T12:23:26Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "073d9b2ecca1b1331a83b1fe88802d232883b342",
          "body": null,
          "is_bot": false,
          "headline": "release 0.4.1 — first trusted-publishing release (pipeline verification)",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T12:20:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "093a36af8825df4067da24f821b0e74abda98964",
          "body": "…, provenance)\n\nPush a v* tag (via npm version + git push --follow-tags) -> verify job runs\nnpm test + asserts the tag matches package.json (no hand-tagged skew) ->\npublish job exchanges the workflow OIDC identity for the publish credential.\nNo long-lived npm token in secrets, provenance attached au\n[…]\n).\nOne-time user step documented in the header: add the trusted publisher on\nnpmjs.com (owner heart-IT, repo react-brain, workflow release.yml).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "release workflow: version tag -> gate -> npm trusted publishing (OIDC…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T12:14:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e639e1e0790b84a6194de6b7becb1099ac431668",
          "body": "… hygiene\n\nnpm publish failed E404 = unauthenticated (whoami 401), and the dry-run showed\ntools/pulse.log + the machine-local tools/.briefing-state.json shipping (files[]\ndirs bypass gitignore) -> negation patterns added; pack now 94 files. Scoped\nname + publishConfig.access=public (scoped defaults \n[…]\n`mcp` delegates to the stdio server so any project can\n`claude mcp add react-brain -- npx -y @heart-it/react-brain mcp`. README npx\nrefs scoped.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "publish prep: scope to @heart-it/react-brain 0.4.0, mcp verb, tarball…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T12:06:36Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c4b441730c27b2f179ee3e9fe3e92a1d0592b724",
          "body": "…peerbarter)\n\nA --since predating the corpus git history (2026-07-06) mislabeled every\nentry NEW: the whole-repo baseline rev was empty (then the root commit, which\npredates the entries/ split). Fix: baseline each entry at ITS OWN last commit\non/before the clamped window start (git rev-list -1 --before -- <path>); an\nentry is NEW only if its file was born inside the window. The report prints\nthe clamp so the window stays honest.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "briefing: per-file baselines + history-start clamp (found dogfooding …",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T08:06:09Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "17651cce470eb55df2443b3e94cff53ebb6b415a",
          "body": "…(corpus diff x your stack)\n\nNew verb completing the triad: doctor = position, census = field, briefing =\nVELOCITY. Six newsletters go in; one repo-specific page comes out. Mechanism:\nstructural YAML diff of each entry vs the corpus at --since (git rev-list +\ngit show, parseYamlStr - no patch parsin\n[…]\n script + tools/README (triad section) + root README row + upkeep-routine\n(run after each harvest for the sibling apps). lint clean, eval 55/55.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "react-brain briefing: the personalized, verified ecosystem changelog …",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T07:25:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d3346b6e3034ba08435a21211c0da2b9077d6b64",
          "body": "…page\n\nCohort +14 fetch-verified apps (MetaMask Mobile 499 deps, BlueWallet, Zeus LN,\nBerty, Comm, Joplin Desktop, Sentry frontend, Formbricks, Documenso, Dub,\nInfisical, Firefox Profiler, tldraw.com, PostHog frontend; redash rejected -\nclient path 404s). Now 14 RN + 20 web/desktop, 34/34 fetched.\n\n\n[…]\nes to methodology without a snapshot) +\nnav/console wiring. Local astro build blocked by node 20; CI site job verifies.\n\nlint clean, eval 55/55.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "census phase 2: cohort 20->34, signals ships-in column, site /census …",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T06:23:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c6d91cef8190e73a44c0ffd28bd67b56e9b87444",
          "body": "… the ungameable empirical anchor\n\nNew tool + verb: tools/react-brain-census.mjs fetches the package.json of a\ncurated, fetch-verified cohort (tools/census-cohort.json: Bluesky, Expensify,\nMattermost, Rocket.Chat, Rainbow, Artsy, Ledger Live, Joplin, Uniswap mobile +\nOutline, Cal.com, Excalidraw, Su\n[…]\n/README + root README rows, upkeep-routine step 3 (census deltas are\nevidence-grade challenge fuel). Read-only by construction; lint+eval green.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "react-brain census: observed adoption across 20 production OSS apps -…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T06:12:36Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0c156ad83002b5510c4e3c2ae5f753830a01e6e8",
          "body": "…rturned; caveats applied, scorecard doubles its data\n\nFive adversarial challengers (per challenge-routine.md) on the signals/\ncheck-due queue. Every default SURVIVED its steelman attack on the stated\naxis; every attack landed a real missing caveat - the system working as\ndesigned. Applied + recorde\n[…]\n; TanStack kept\n  the type-safe-SPA slot (RR typegen is framework-mode-only); SDK 57\n  decoupling persistence verified.\n\nlint clean, eval 55/55.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "challenge pass: 5 reviewed defaults stress-tested — 5 WEAKENED, 0 ove…",
          "author_name": "Rahul Garg",
          "author_login": "xTMNTxRaphaelx",
          "committed_at": "2026-07-10T04:44:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        }
      ],
      "releases_count": 14,
      "commits_last_year": 136,
      "latest_release_at": "2026-07-20T08:31:40Z",
      "latest_release_tag": "v0.9.1",
      "releases_from_tags": true,
      "days_since_last_push": 6,
      "active_weeks_last_year": 3,
      "days_since_latest_release": 6,
      "mean_days_between_releases": 0.8
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 50,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@heart-it/react-brain",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "react",
            "react-native",
            "encyclopedia",
            "ecosystem",
            "mentor",
            "cli",
            "ecosystem-fit"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@heart-it/react-brain",
          "is_deprecated": false,
          "latest_version": "0.9.1",
          "repository_url": "https://github.com/heart-IT/react-brain",
          "versions_count": 15,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 2265,
          "first_published_at": "2026-07-10T12:08:56.346000Z",
          "latest_published_at": "2026-07-20T08:32:25.840000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        },
        {
          "name": "react-brain",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "react",
            "react-native",
            "expo",
            "developer-tools",
            "cli",
            "mcp",
            "mcp-server",
            "knowledge-base",
            "dependencies",
            "migration"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/react-brain",
          "is_deprecated": false,
          "latest_version": "0.9.1",
          "repository_url": "https://github.com/heart-IT/react-brain",
          "versions_count": 6,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 806,
          "first_published_at": "2026-07-13T14:33:01.755000Z",
          "latest_published_at": "2026-07-20T08:32:29.593000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 0,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_stars": 0,
        "collected_at": null
      },
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 39936,
      "source_files_sampled": 33,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "alias/package.json",
        "package.json",
        "site/package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 1,
        "malicious_count": 0,
        "assessed_package": "npm:@heart-it/react-brain@0.9.1",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@heart-it/react-brain",
          "manifest": "alias/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.9.1"
        },
        {
          "name": "yaml",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.8.1"
        },
        {
          "name": "astro",
          "manifest": "site/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.0"
        },
        {
          "name": "yaml",
          "manifest": "site/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.8.1"
        }
      ],
      "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": 0,
        "merged_prs": 0,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "xTMNTxRaphaelx",
          "commits": 136,
          "avatar_url": "https://avatars.githubusercontent.com/u/2743977?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "bench.yml",
        "ci.yml",
        "harvest-verify.yml",
        "pages.yml",
        "release.yml",
        "triage-bench.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 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": 6,
            "reason": "project has 2 contributing companies or organizations -- score normalized to 6",
            "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": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 2,
            "reason": "dependency not pinned by hash detected -- score normalized to 2",
            "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": 7,
            "reason": "3 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "2b9c39f2ac3a2ca5b96790b0fca7b442f3050693",
        "ran_at": "2026-07-26T10:16:33Z",
        "aggregate_score": 3.1,
        "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-20T08:32:16Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": null,
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/heart-IT/react-brain",
    "host": "github.com",
    "name": "react-brain",
    "owner": "heart-IT"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 50,
      "inputs": {
        "security": 45,
        "vitality": 69,
        "community": 32,
        "governance": 38,
        "engineering": 66
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 69,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 56,
            "inputs": {
              "commits_last_year": 136,
              "human_commit_share": 1,
              "days_since_last_push": 6,
              "active_weeks_last_year": 3
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 6 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "3/52 weeks with commits",
                "points": 2.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 3
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "136 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 136
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "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": 88,
            "inputs": {
              "releases_count": 14,
              "latest_release_tag": "v0.9.1",
              "releases_from_tags": true,
              "days_since_latest_release": 6,
              "mean_days_between_releases": 0.8
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "14 version tags (no GitHub releases)",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "version_tags_no_releases",
                    "params": {
                      "count": 14
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 6 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~0.8 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 0.8
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 32,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 0,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "0 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "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": 58,
            "inputs": {
              "packages": [
                "@heart-it/react-brain",
                "react-brain"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 3071
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "3,071 downloads/month across npm",
                "points": 46.5,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 3071,
                      "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": "at_risk",
        "name": "Sustainability & Governance",
        "value": 38,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 16,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "critical",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution",
                    "pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "merged_prs": 0,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "no decided pull requests or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_decided_prs_or_data",
                    "params": {}
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 53,
            "inputs": {
              "followers": 1,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "heart-IT",
              "public_repos": 15,
              "account_age_days": 3417
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "1 followers of heart-IT",
                "points": 2.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 1,
                      "login": "heart-IT"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "15 public repos, account ~9 yr old",
                "points": 20.8,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 15
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 9
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@heart-it/react-brain",
                "react-brain"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 6
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "2 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 2,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 6 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "15 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 15
                    }
                  }
                ],
                "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": 66,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "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": 60,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "6 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": 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": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [
                "ai-agents",
                "cli",
                "code-review",
                "dependencies",
                "developer-tools",
                "expo",
                "knowledge-base",
                "mcp",
                "mcp-server",
                "migration",
                "react",
                "react-native"
              ],
              "has_wiki": true,
              "homepage": "https://heart-it.github.io/react-brain/",
              "has_readme": true,
              "has_docs_dir": false,
              "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://heart-it.github.io/react-brain/",
                "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": "12 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 45,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 31,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 3.1
            },
            "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 2 contributing companies or organizations -- score normalized to 6",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 1,
                "status": "partial",
                "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": "3 existing vulnerabilities detected",
                "points": 5.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@heart-it/react-brain@0.9.1 runtime dependency closure — what installing the published package pulls in — 1 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:@heart-it/react-brain@0.9.1",
                  "assessed": 1
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 1,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 1,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 3
            },
            "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": "at_risk",
        "name": "AI Readiness",
        "value": 41,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.82,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "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": "82 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 82,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 44,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.86,
              "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": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "86 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 86,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "primary_language": "JavaScript",
              "largest_source_bytes": 39936,
              "source_files_sampled": 33,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "JavaScript without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "JavaScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/33 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 33,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "critical",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 20,
            "inputs": {
              "example_dirs": [],
              "has_mcp_signal": true,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-26T10:16:36.984499Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/h/heart-IT/react-brain.svg",
  "full_name": "heart-IT/react-brain",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v1.13.0, Schema v0.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistikennpm.