Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-24 14:15 UTC

nicolasmelo1 / logion

Agent-native course marketplace and skill registry for executable AI-agent curricula

PythonMIT★ 33 Sterne⑂ 2 Forksseit Mai 2026Auf GitHub ansehen ↗

nicolasmelo1/logion erreicht einen Gesundheitsindex von 65 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Engineering Quality (90/100) ab, am schwächsten bei Security (48/100). Zuletzt heute aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

65
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.

65
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

Nicolas LealPersönliches Konto
120 Follower73 öffentliche Reposseit Juni 2015@palmaresHQ

Dieses Repository gehört einem persönlichen Konto. Ein Projekt mit nur einem Eigentümer trägt ein höheres Kontinuitätsrisiko als ein organisationsgetragenes.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
PyPIlogion-cli0.1.152.67515vor 5 Tagenlogionmarketplaceagentskillcli
PyPIlogion-client0.1.15-10vor 5 Tagenagentlogionmarketplacesdk
PyPIlogion-skillmap0.1.0-1vor 2 Tagenlogionskillmappackage-mapinference
npm@logionsh/cli0.1.153.07715vor 5 Tagenlogionclimarketplaceagent

Metriken nach Kategorie

Vitalität

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

73Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
7.6/36Commit-Rhythmus — 11/52 Wochen mit Commits
18/18Commit-Volumen — 276 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_year276
human_commit_share0,97
days_since_last_push0
active_weeks_last_year11
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 42 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 2 Tagen
27/27Release-Rhythmus — ein Release etwa alle 2,1 Tage
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Verwendete Eingangsdaten
releases_count42
latest_release_taglogion-skillmap-v0.1.0
releases_from_tagsnein
days_since_latest_release2
mean_days_between_releases2,1

Community & Verbreitung

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

58Mittel · 18 % des Gesamtindex
Wie die Bewertung erfolgt
24.4/60Stars — 33 Stars
0/25Forks — 2 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks2
stars33
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
18/18CONTRIBUTING-Leitfaden
13.5/13.5Verhaltenskodex
0/7.2Issue-Vorlage
6.3/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingja
has_issue_templatenein
has_code_of_conductja
has_pull_request_templateja
Wie die Bewertung erfolgt
50.1/80Downloads pro Monat — 5.752 Downloads/Monat über npm, pypi
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packageslogion-cli, logion-client, logion-skillmap, @logionsh/cli
dependents
ecosystemsnpm, pypi
total_downloads
monthly_downloads5.752
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?

52Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0.3/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 98 % der Commits
4.1/13.5Breite der Beitragenden — 3 Beitragende
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Verwendete Eingangsdaten
bus_factor1
contributors_sampled3
top_contributor_share0,985
Wie die Bewertung erfolgt
15.6/46.8Issue-Lösungsquote — 33 % der Issues geschlossen
31.3/38.3PR-Annahme — 184/225 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/29 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs184
open_issues6
closed_issues3
issue_closed_ratio0,333
closed_unmerged_prs41
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
15/25Reichweite des Inhabers — 120 Follower von nicolasmelo1
25/25Kontohistorie — 73 öffentliche Repos, Kontoalter ca. 11 Jahre
Verwendete Eingangsdaten
followers120
owner_typeUser
is_verified
owner_loginnicolasmelo1
public_repos73
account_age_days4.055
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 4 Paket(e) auf npm, pypi
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 2 Tagen
20/20Versionshistorie — 15 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packageslogion-cli, logion-client, logion-skillmap, @logionsh/cli
ecosystemsnpm, pypi
any_deprecatednein
min_days_since_publish2

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

90Exzellent · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 13 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration — eslint.config.mjs
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 28 out of 28 merged PRs checked by a CI test -- score normalized to 10
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_configja
has_precommit_confignein

Dokumentation

100Exzellent
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://logion.sh
10/10Repository-Beschreibung
10/10Topics — 20 Topics
10/10Wiki
Verwendete Eingangsdaten
topicsagents, claude-code, claude-code-skill, clawhub, directory, hermes, hermes-skill, network, openclaw, skill, skill-development, skills, skills-course, logion, ai, ai-agent, ai-agents, llm, llm-tools, openai
has_wikija
homepagehttps://logion.sh
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

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

48Gefährdet · 16 % des Gesamtindex

Sicherheitslage

35Gefährdet
Wie die Bewertung erfolgt
6.8/7.5Binary-Artifacts — binaries present in source code
3.8/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 28 out of 28 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/29 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
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
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 27 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated18
scorecard_versionv5.5.0
checks_inconclusive0
scorecard_aggregate3,5
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_packages17
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 pypi:logion-cli@0.1.15 — das, was die Installation des veröffentlichten Pakets nach sich zieht — mit 17 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.

76Gut · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — AGENTS.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 94 von 97 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,969
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes6.968
Wie die Bewertung erfolgt
18/18Bootstrap mit einem Befehl — Makefile, packages/agent-companion/Makefile, packages/agent-proving-ground/Makefile, packages/client/Makefile
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — eslint.config.mjs
11/11Statische Typprüfung — packages/client/src/logion/py.typed, packages/npm-wrapper/tsconfig.json, packages/skillmap/logion_skillmap/py.typed
10/10Reproduzierbare Umgebung — lockfile
8/10Belegte Agentenpraxis — 4 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilespackage-lock.json, uv.lock
has_dockerfilenein
typed_languagenein
bootstrap_filesMakefile, packages/agent-companion/Makefile, packages/agent-proving-ground/Makefile, packages/client/Makefile
has_devcontainernein
has_linter_configja
typecheck_configspackages/client/src/logion/py.typed, packages/npm-wrapper/tsconfig.json, packages/skillmap/logion_skillmap/py.typed
agent_commit_share0,04
toolchain_manifests
dependency_bot_commit_share0
Wie die Bewertung erfolgt
27/45Typprüfbarer Code — Python mit Typprüfungs-Konfiguration (packages/client/src/logion/py.typed, packages/npm-wrapper/tsconfig.json, packages/skillmap/logion_skillmap/py.typed)
54.9/55Handhabbare Dateigrößen — 1/569 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languagePython
largest_source_bytes60.138
source_files_sampled569
oversized_source_files1
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
0/20MCP-Server
40/40Lauffähige Beispiele — examples
Verwendete Eingangsdaten
example_dirsexamples
has_mcp_signalnein
api_schema_files

Eckdaten

33GitHub-Sterne
3Mitwirkende
276Commits, letzte 12 Monate
0Tage seit letztem Push
42Releases
1Bus-Faktor
6offene Issues
PyPIPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Could not fetch pypi package 'logion' from its registry
  • Could not fetch pypi package 'logion-bot' from its registry
  • Could not fetch pypi package 'logion-indexer' from its registry
  • Could not fetch pypi package 'logion-landing' from its registry
  • Could not fetch pypi package 'logion-scanners' from its registry
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 2 ⇿
0Sterne
2Forks
9Releases

Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.

111222212026-072026-072026-07
Major 0Minor 0Patch 0
OpenSSF Scorecard 3.5 / 10
3.5Gesamtwert

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-24 14:14 UTC

9Binary-Artifactsbinaries present in source code
5Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests28 out of 28 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/29 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
10Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities27 existing vulnerabilities detected
Direkte Abhängigkeiten 23
RegistryPaketVersionsvorgabeManifest
PyPIpyyaml>=6.0,<7.0packages/agent-companion/pyproject.toml
PyPIpydantic>=2.8packages/agent-proving-ground/pyproject.toml
PyPIpyyaml>=6.0packages/agent-proving-ground/pyproject.toml
PyPIrich>=13.7packages/agent-proving-ground/pyproject.toml
PyPIlogion-clientpackages/cli/pyproject.toml
PyPIlogion-skillmappackages/cli/pyproject.toml
PyPIpydantic>=2.7,<3.0.0packages/cli/pyproject.toml
PyPIpyyaml>=6.0,<7.0packages/cli/pyproject.toml
PyPIshtab>=1.7,<2.0packages/cli/pyproject.toml
PyPIemail-validator>=2.1,<3.0.0packages/client/pyproject.toml
PyPIhttpx>=0.27,<1.0.0packages/client/pyproject.toml
PyPIpydantic>=2.7,<3.0.0packages/client/pyproject.toml
PyPIlogion-skillmappackages/indexer/pyproject.toml
PyPIpyyaml>=6.0packages/indexer/pyproject.toml
PyPIfastapi>=0.136.1,<0.137.0packages/landing/pyproject.toml
PyPIjinja2>=3.1.6,<4.0.0packages/landing/pyproject.toml
PyPImarkdown-it-py>=4.0.0,<5.0.0packages/landing/pyproject.toml
PyPIpyyaml>=6.0.2,<7.0.0packages/landing/pyproject.toml
PyPIpyyaml>=6.0,<7.0packages/scanners/pyproject.toml
PyPIpyyaml>=6.0packages/skillmap/pyproject.toml
PyPIhttpx>=0.28,<0.29packages/social-management/pyproject.toml
PyPIpydantic>=2.6,<3packages/social-management/pyproject.toml
PyPIpyyaml>=6.0,<7.0packages/social-management/pyproject.toml
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 pypi:logion-cli@0.1.15 zieht 17 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": [
        "agents",
        "claude-code",
        "claude-code-skill",
        "clawhub",
        "directory",
        "hermes",
        "hermes-skill",
        "network",
        "openclaw",
        "skill",
        "skill-development",
        "skills",
        "skills-course",
        "logion",
        "ai",
        "ai-agent",
        "ai-agents",
        "llm",
        "llm-tools",
        "openai"
      ],
      "is_fork": false,
      "size_kb": 3785,
      "has_wiki": true,
      "homepage": "https://logion.sh",
      "languages": {
        "CSS": 37107,
        "HTML": 59093,
        "Shell": 84505,
        "Python": 2968987,
        "Makefile": 17570,
        "JavaScript": 58295,
        "PowerShell": 74267,
        "TypeScript": 47517
      },
      "pushed_at": "2026-07-24T10:29:45Z",
      "created_at": "2026-05-13T21:35:35Z",
      "owner_type": "User",
      "updated_at": "2026-07-23T13:09:30Z",
      "description": "Agent-native course marketplace and skill registry for executable AI-agent curricula",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Python",
      "significant_languages": [
        "Python"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Nicolas Leal",
      "type": "User",
      "login": "nicolasmelo1",
      "company": "@palmaresHQ",
      "location": "São Paulo",
      "followers": 120,
      "avatar_url": "https://avatars.githubusercontent.com/u/12915742?v=4",
      "created_at": "2015-06-16T17:14:54Z",
      "is_verified": null,
      "public_repos": 73,
      "account_age_days": 4055
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "logion-skillmap-v0.1.0",
          "kind": "other",
          "published_at": "2026-07-22T12:14:10Z"
        },
        {
          "tag": "logion-cli-v0.1.15",
          "kind": "other",
          "published_at": "2026-07-19T01:48:58Z"
        },
        {
          "tag": "logion-client-v0.1.15",
          "kind": "other",
          "published_at": "2026-07-19T01:48:50Z"
        },
        {
          "tag": "logion-companion-v0.1.15",
          "kind": "other",
          "published_at": "2026-07-19T01:48:37Z"
        },
        {
          "tag": "logion-companion-v0.1.14",
          "kind": "other",
          "published_at": "2026-07-18T19:04:34Z"
        },
        {
          "tag": "logion-cli-v0.1.13",
          "kind": "other",
          "published_at": "2026-07-07T16:53:26Z"
        },
        {
          "tag": "logion-client-v0.1.13",
          "kind": "other",
          "published_at": "2026-07-07T16:53:25Z"
        },
        {
          "tag": "logion-companion-v0.1.13",
          "kind": "other",
          "published_at": "2026-07-07T16:52:57Z"
        },
        {
          "tag": "logion-cli-v0.1.12",
          "kind": "other",
          "published_at": "2026-07-03T11:08:23Z"
        },
        {
          "tag": "logion-client-v0.1.12",
          "kind": "other",
          "published_at": "2026-07-03T11:08:22Z"
        },
        {
          "tag": "logion-companion-v0.1.12",
          "kind": "other",
          "published_at": "2026-07-03T11:07:58Z"
        },
        {
          "tag": "logion-client-v0.1.11",
          "kind": "other",
          "published_at": "2026-07-02T02:48:04Z"
        },
        {
          "tag": "logion-cli-v0.1.11",
          "kind": "other",
          "published_at": "2026-07-02T02:47:55Z"
        },
        {
          "tag": "logion-companion-v0.1.11",
          "kind": "other",
          "published_at": "2026-07-02T02:47:38Z"
        },
        {
          "tag": "logion-client-v0.1.5",
          "kind": "other",
          "published_at": "2026-07-01T04:50:16Z"
        },
        {
          "tag": "logion-cli-v0.1.10",
          "kind": "other",
          "published_at": "2026-07-01T04:23:55Z"
        },
        {
          "tag": "logion-companion-v0.1.7",
          "kind": "other",
          "published_at": "2026-07-01T04:23:36Z"
        },
        {
          "tag": "logion-cli-v0.1.9",
          "kind": "other",
          "published_at": "2026-06-29T02:26:05Z"
        },
        {
          "tag": "logion-companion-v0.1.6",
          "kind": "other",
          "published_at": "2026-06-29T02:25:51Z"
        },
        {
          "tag": "logion-cli-v0.1.8",
          "kind": "other",
          "published_at": "2026-06-29T01:30:53Z"
        },
        {
          "tag": "logion-companion-v0.1.5",
          "kind": "other",
          "published_at": "2026-06-29T01:30:51Z"
        },
        {
          "tag": "logion-cli-v0.1.7",
          "kind": "other",
          "published_at": "2026-06-29T00:54:57Z"
        },
        {
          "tag": "logion-cli-v0.1.6",
          "kind": "other",
          "published_at": "2026-06-29T00:24:09Z"
        },
        {
          "tag": "logion-cli-v0.1.5",
          "kind": "other",
          "published_at": "2026-06-29T00:13:06Z"
        },
        {
          "tag": "logion-cli-v0.1.4",
          "kind": "other",
          "published_at": "2026-06-28T23:44:00Z"
        },
        {
          "tag": "logion-companion-v0.1.4",
          "kind": "other",
          "published_at": "2026-06-28T23:44:00Z"
        },
        {
          "tag": "installer-v0.1.4",
          "kind": "other",
          "published_at": "2026-06-28T23:43:54Z"
        },
        {
          "tag": "logion-client-v0.1.4",
          "kind": "other",
          "published_at": "2026-06-28T23:43:53Z"
        },
        {
          "tag": "logion-cli-v0.1.3",
          "kind": "other",
          "published_at": "2026-06-28T23:08:19Z"
        },
        {
          "tag": "logion-companion-v0.1.3",
          "kind": "other",
          "published_at": "2026-06-28T23:08:04Z"
        },
        {
          "tag": "installer-v0.1.3",
          "kind": "other",
          "published_at": "2026-06-28T23:08:02Z"
        },
        {
          "tag": "logion-client-v0.1.3",
          "kind": "other",
          "published_at": "2026-06-28T23:08:00Z"
        },
        {
          "tag": "logion-client-v0.1.2",
          "kind": "other",
          "published_at": "2026-06-28T21:05:44Z"
        },
        {
          "tag": "logion-cli-v0.1.2",
          "kind": "other",
          "published_at": "2026-06-28T21:05:39Z"
        },
        {
          "tag": "logion-companion-v0.1.2",
          "kind": "other",
          "published_at": "2026-06-28T21:05:15Z"
        },
        {
          "tag": "logion-companion-v0.1.1",
          "kind": "other",
          "published_at": "2026-06-28T18:45:37Z"
        },
        {
          "tag": "logion-cli-v0.1.1",
          "kind": "other",
          "published_at": "2026-06-28T18:42:04Z"
        },
        {
          "tag": "logion-client-v0.1.1",
          "kind": "other",
          "published_at": "2026-06-28T18:37:29Z"
        },
        {
          "tag": "logion-cli-v0.1.0",
          "kind": "other",
          "published_at": "2026-06-28T17:31:30Z"
        },
        {
          "tag": "installer-v1",
          "kind": "other",
          "published_at": "2026-06-28T17:28:30Z"
        },
        {
          "tag": "logion-companion-v0.1.0",
          "kind": "other",
          "published_at": "2026-06-28T17:26:37Z"
        },
        {
          "tag": "logion-client-v0.1.0",
          "kind": "other",
          "published_at": "2026-06-28T17:25:21Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "6efa11ff0c1e8139620ef913a4e4e0bafb861b4a",
          "body": "* docs(roadmap): ground ARD in AI Catalog connectors\n\nSigned-off-by: Nicolas Melo <nicolasmelo12@gmail.com>\n\n* docs(protocol): pin AI Catalog and ARD specifications\n\nSigned-off-by: Nicolas Melo <nicolasmelo12@gmail.com>\n\n* fix(ci): restore public phase vocabulary guard\n\nSigned-off-by: Nicolas Melo <nicolasmelo12@gmail.com>\n\n---------\n\nSigned-off-by: Nicolas Melo <nicolasmelo12@gmail.com>",
          "is_bot": false,
          "headline": "docs(roadmap): ground ARD in AI Catalog connectors (#237)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-23T13:07:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1c2c8ecb2ce6892bd5bf25990842a3a580488b7a",
          "body": "Signed-off-by: Nicolas Melo <nicolasmelo12@gmail.com>",
          "is_bot": false,
          "headline": "docs(roadmap): publish canonical planning (#236)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-23T04:43:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "551095ed36f8aae5a5ef0b925bb8b2f7db94d204",
          "body": null,
          "is_bot": false,
          "headline": "feat(proving-ground): add identity oauth observed-effect scenario (#235)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-23T01:42:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b202f84e0a08e70bd2dfe9f84e45f1425ca6767",
          "body": "Co-authored-by: nicolasmelo1 <12915742+nicolasmelo1@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore: sync OpenAPI contract from logion-private (#234)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-23T01:05:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f98beb116210a46a6c25397dc57b0f11adecca3a",
          "body": "* chore(client): classify capabilities operation\n\n* test(client): stage capabilities operation coverage",
          "is_bot": false,
          "headline": "chore(client): classify capabilities operation (#233)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-23T00:31:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c7ebbc678d40f8d4a421c5781fe6dd85f76ccc2",
          "body": null,
          "is_bot": false,
          "headline": "ci(contract): record approved v1 main change (#232)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-22T17:52:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6fa6d6956e84cf1d74b1193a75cace19b4f0f45",
          "body": "Co-authored-by: nicolasmelo1 <12915742+nicolasmelo1@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore: sync OpenAPI contract from logion-private (#229)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-22T17:20:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "981547850007c0bf0ec66948f6499cfbd855091e",
          "body": null,
          "is_bot": false,
          "headline": "ci(contract): allow approved v1 default change (#231)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-22T17:20:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a56d8f95bf2c5cc76b9325f80f9deb4034ebf95",
          "body": null,
          "is_bot": false,
          "headline": "fix(client): classify platform bounty admin operations (#230)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-22T16:51:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e88010497dafdac3a014505a0392c63c049d669",
          "body": null,
          "is_bot": false,
          "headline": "ci(contract): check public v1 compatibility (#228)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-22T15:56:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7fa30e78e9a83ddc6fba90421938cd45d4bd1add",
          "body": "* fix(cli): rank query results by relevance\n\n* test(cli): preserve explicit listing sort",
          "is_bot": false,
          "headline": "fix(cli): rank query results by relevance (#227)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-22T15:56:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f66658cefe0ab854a6036c4d045a420db70ebd7",
          "body": "* fix(landing): chain terminal and page scrolling\n\n* fix(landing): expand legal pages and refine bolts",
          "is_bot": false,
          "headline": "fix(landing): refine lightning and scrolling (#226)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-22T12:30:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3824c72c46eadcb15e81ef46c4c685a7d094f00f",
          "body": "* ci: publish logion-skillmap to PyPI\n\n* chore: sync OpenAPI contract from logion-private\n\n* test(client): cover indexed listing operations\n\n---------\n\nCo-authored-by: nicolasmelo1 <12915742+nicolasmelo1@users.noreply.github.com>",
          "is_bot": false,
          "headline": "ci: publish skillmap and sync OpenAPI contract (#224)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-22T00:09:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af4ca8096003eb3b46eec8ba0684943053f3962f",
          "body": null,
          "is_bot": false,
          "headline": "fix(deps): update gitpython security release (#222)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-21T22:38:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50ed8cbaa690b888a9809687b8a2cd4959accaf7",
          "body": "* feat(indexer): record aggregate run progress\n\n* fix(indexer): preserve primary run failures\n\n* test(indexer): cover progress reporting",
          "is_bot": false,
          "headline": "feat(indexer): record aggregate run progress (#221)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-21T20:51:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f46d4180719c231cf4f39a5a7a1f1e0796d0f76a",
          "body": "* feat(landing): lead with product examples\n\n* feat(landing): animate agent workflow examples\n\n* feat(landing): sharpen agent-native proof story\n\n* fix(landing): refine terminal command contrast\n\n* feat(landing): connect terminal demo narratives\n\n* fix(landing): stabilize animated terminal layouts\n\n* fix(landing): make terminal panes independently scrollable",
          "is_bot": false,
          "headline": "feat(landing): tell the product through agent workflows (#220)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-21T20:50:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5c76824fb95b1a8df47f1fd8b14fc15542e6af67",
          "body": null,
          "is_bot": false,
          "headline": "perf(indexer): enrich repositories concurrently (#219)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-21T10:58:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed4bd7fe8de49f073acaf5eedfe8825f3487cda1",
          "body": "…aktp (#217)\n\n* docs(landing): native-use beat after install; v1 event-log line on aktp page\n\n* docs(landing): replace em-dashes in body copy with plain punctuation",
          "is_bot": false,
          "headline": "docs(landing): native-use beat after install + v1 event-log line on /…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-21T05:31:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "56407e81b004eca18b540053a949991c5fb48ad5",
          "body": "…ts (#216)\n\n* feat(landing): AKTP protocol page, header link, colorized transcripts\n\n* fix(landing): keep aktp diagram text inside box borders",
          "is_bot": false,
          "headline": "feat(landing): AKTP protocol page + header link + colorized transcrip…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-20T22:13:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8e9f18793ebd4b213d8f90f4b41ca7497b4c50ab",
          "body": null,
          "is_bot": false,
          "headline": "fix(indexer): bound write request timeouts (#215)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-20T14:42:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "badfaeeb82e8584b1bfe8a9e5d90c49169f802d0",
          "body": null,
          "is_bot": false,
          "headline": "fix(indexer): encode github content paths (#214)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-20T00:21:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2926e80fe0f42ab1dda55676dd5257c5d2bc27bf",
          "body": "…213)\n\n* docs(readme,landing): the network-continual-learning line, shown not told\n\nREADME: the 'loop, not a transaction' bullet now states the thesis in one\nsentence — one accepted improvement becomes everyone's new starting\npoint; whoever joins today starts at today's level, never from zero —\nand \n[…]\nnding\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs(readme,landing): network continual learning — shown, not told (#…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-19T18:50:31Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2878017b06d631a749174dd5460da625c8c42d72",
          "body": null,
          "is_bot": false,
          "headline": "fix(indexer): tolerate transient github disconnects (#212)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-19T18:50:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "678ae61f10d9538a8bbec3077a122a8e9b0e2137",
          "body": null,
          "is_bot": false,
          "headline": "fix(indexer): remove lobehub source (#211)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-19T18:46:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8190330573f0b7fc7bea683b97ce55fc48115466",
          "body": "fix(release): allow resuming release when tags already exist on origin",
          "is_bot": false,
          "headline": "Merge pull request #210 from nicolasmelo1/fix/release-resume-remote-tags",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-19T02:56:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32e7c6641779cabd12239968416e4a52b8c81fa2",
          "body": null,
          "is_bot": false,
          "headline": "fix(release): allow resuming release when tags already exist on origin",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-19T02:52:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d8dfb82145d62f1c5803c54f1b856d4a877281b",
          "body": null,
          "is_bot": true,
          "headline": "chore(release): 0.1.15",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-19T01:47:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "65f90f30e8ea7a8f3ab8bc811fe4770d4fd7cb4a",
          "body": "* feat(cli): indexed listing discovery opt-in and get command\n\n- Add --include-indexed and --tier flags to logion listings search\n- Add logion indexed get LISTING_ID command\n- Wire IndexedListingsResource in client V1 namespace\n- Implement resource methods without touching generated files\n- Update h\n[…]\ncontract operation)\n- Rename test_indexed_get_default_parser_limit to test_indexed_get_parses_listing_id\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(cli): indexed listing discovery opt-in and get command (#207)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-18T23:59:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a8e992e0edbb652075e526c880bf7b5fbfdede01",
          "body": "* chore(release): prepare companion v0.1.14\n\n* docs(release): align changelog attribution",
          "is_bot": false,
          "headline": "chore(release): prepare companion v0.1.14 (#206)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-18T18:47:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20b9946c192c764f1e02c7e597fb05ca74a1918b",
          "body": "* fix(scanners): ignore eval wording in comments\n\n* test(scanners): cover slash comments",
          "is_bot": false,
          "headline": "fix(scanners): ignore eval wording in comments (#205)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-18T17:04:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ad6fd95c94da83969928351405f0c3f8dff3249e",
          "body": "…(#204)\n\nmarketplace_loop proves the buyer contract inside a single session:\npurchase, install, use, and review all happen in one agent process.\nThis scenario splits the journey across two sessions (the runner\nalready spawns a fresh driver process per phase): session one buys and\ninstalls and stops;\n[…]\nnt instead of repurchasing.\n\nPrompt-lint tests mirror marketplace_loop's rule: the visible prompt\nnever mentions reporting or reviews — the contract must come from\ncompanion policy, not the goal text.",
          "is_bot": false,
          "headline": "feat(agent-proving-ground): cross_session_skill_use builtin scenario …",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-18T15:24:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dbb4a9f6cdbb801e4ef1b374a318ff908e189eff",
          "body": null,
          "is_bot": false,
          "headline": "fix(indexer): parse lockfile URL schemes (#203)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-18T14:15:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f80a071fc64778f280534975557438642a95f6c0",
          "body": "* feat(indexer): add public skill hub sources\n\n* fix(indexer): report invalid lockfile JSON",
          "is_bot": false,
          "headline": "feat(indexer): add public skill hub sources (#202)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-18T14:06:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b1cb58a267aaa0b00242b90c11282a76072710c5",
          "body": "* fix(indexer): expand hub catalog coverage\n\n* fix(indexer): bypass cache for known lookups\n\n* fix(indexer): fail closed on catalog provenance\n\n* fix(indexer): validate external pagination data",
          "is_bot": false,
          "headline": "fix(indexer): expand hub catalog coverage (#200)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-18T13:49:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c18c10564ae69cf531d05593c164a89d3b715e6",
          "body": "Hero hook, a new top 'Proof over popularity' section, an FAQ entry\nanswering 'why pay for an improvement my own AI can write', and the\nllms.txt summary now state the product thesis directly: generating\nimprovements is cheap; proving they are real is scarce; Logion sells\nthe proof. The unshipped proof layer (hidden-test scoring, benchmark\nvs field reconciliation) stays explicitly labeled as direction, per\nthe landing truth rule.",
          "is_bot": false,
          "headline": "feat(landing): lead with the proof-over-popularity thesis (#198)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-18T12:41:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5d00b0fb3fe6a7c5fb91c94ba09475b10518fa5",
          "body": "* fix(indexer): crawl skills.sh sitemaps\n\n* fix(indexer): parse sitemap locations safely\n\n* fix(indexer): tighten sitemap origin handling",
          "is_bot": false,
          "headline": "fix(indexer): crawl skills.sh sitemaps (#199)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-18T12:20:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea0ad9f8f1c050b2bb276bb807a078ac4a68db36",
          "body": "* fix(indexer): retry transient tarball fetches\n\n* perf(indexer): skip restricted tarball fetches\n\n* fix(indexer): retry transient HTTP responses\n\n* fix(indexer): close retried HTTP errors",
          "is_bot": false,
          "headline": "fix(indexer): retry transient tarball fetches (#197)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-18T10:52:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3e6c0b1667e81acbccc4728746c7e88eed6ddd8",
          "body": "* fix(indexer): preserve run diagnostics and partial state\n\n* fix(indexer): capture adapter construction failures\n\n* fix(indexer): bound push error diagnostics",
          "is_bot": false,
          "headline": "fix(indexer): preserve run diagnostics and partial state (#196)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-17T17:43:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d389b4ab5136db8dad24628a1dc7e1cbfc4dbf91",
          "body": "* feat(indexer): on-disk conditional-request HTTP cache\n\nAdd a persistent ETag/Last-Modified cache (http_cache.DiskCache) wired\ninto Transport: stored validators are sent as If-None-Match /\nIf-Modified-Since and a 304 serves the cached body. Cache dir defaults to\n~/.cache/logion-indexer, overridable\n[…]\nhe\n  two-step crawl --out / push --plan resume path, the GitHub-token\n  rate-limit need, and install-from-source via clone + uv sync\n  --all-packages (logion-skillmap is an unpublished workspace dep).",
          "is_bot": false,
          "headline": "fix(indexer): close indexing reliability gaps (#194)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-16T20:16:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1bac46b4e6824f32638258b7c5f4ea6663841f85",
          "body": "…error codes (#193)\n\n- onboarding --setup-token called client.v1.setup_tokens.redeem, but the\n  generated SDK only exposes client.v1.github_setup.redeem_token — the\n  real (non-mocked) redeem path would raise AttributeError. Point the\n  CLI and the test mocks at the actual resource/method.\n- registe\n[…]\nng,\n  npm-wrapper, agent-proving-ground, social-management) and describe the\n  shipped GitHub surfaces (identity linkage, sign-in -> setup-token\n  install, source links, package maps, bounty PR lane).",
          "is_bot": false,
          "headline": "fix(cli): call the real SDK setup-token redeem; register package-map …",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-16T01:39:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7caa08fedbf4114d978235bc6f045a9ed8d67694",
          "body": "* feat(indexer): add public skillhub indexer package\n\nAdd packages/indexer/ (logion-indexer) — a public, operator-run\ncrawler CLI that discovers skills from hub pages (skills.sh,\nClawHub, LobeHub, browse.sh, Hermes docs, skills-lock.json) and\ndirect GitHub repos, resolves each to its canonical GitHu\n[…]\nT endpoints\n- Catch network exceptions in Crawler.fetch_page() to prevent crawl crashes\n- Auto-configure transport API host from Pusher base_url\n- Document plan push behavior for minimal skill objects",
          "is_bot": false,
          "headline": "feat(indexer): add public skillhub indexer package (#191)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-15T23:18:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1171096ac8e03557cea72a106340cb93a8e09030",
          "body": "…ver (#188)\n\n* feat(cli): courses source-link set/show/remove commands\n\nAdd CLI commands to manage course-to-GitHub-repo source links. The\nSDK is regenerated from the updated OpenAPI contract to expose three\nnew operations: set_course_source_link, get_course_source_link,\ndelete_course_source_link.\n\n\n[…]\ncenario bindings and GitHub checks\n\n* fix(proving-ground): paginate GitHub observer reads\n\n* fix(cli): preserve JSON errors across source-link commands\n\n* style(cli): format source-link error handling",
          "is_bot": false,
          "headline": "feat(cli): courses source-link commands + proving-ground GitHub obser…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-15T16:32:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3bc33b4397a7a072bc8129794a831a10afe0847c",
          "body": "* perf(cli): defer runtime imports during parser setup\n\n* test(cli): harden startup regression checks\n\n* fix(cli): preserve lazy import seams\n\n* perf(cli): cache resolved lazy modules",
          "is_bot": false,
          "headline": "perf(cli): defer runtime imports during parser setup (#189)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-14T01:14:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0927e82dce82c3d0f27f9f3fedb47e13b2f5c8c2",
          "body": "* fix(scanners): pull Trivy vuln DB from mirror.gcr.io, GHCR fallback\n\nTrivy's built-in default DB repository (ghcr.io/aquasecurity/trivy-db)\nis aggressively rate-limited (TOOMANYREQUESTS) under community-wide\nload. On a cold cache the scan can burn its whole 300s timeout on the\nDB download or fail \n[…]\nn-semantic-release>=10.5.3,<10.6.0 (click~=8.1.0). psr 10.6.1 relaxes\nthat to click<9,>=8.1.0, so widen the psr pin to >=10.6.1,<10.7.0 and let\nclick resolve to 8.4.2. Dependency audit is green again.",
          "is_bot": false,
          "headline": "fix(scanners): pull Trivy vuln DB from mirror, GHCR fallback (#186)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-13T19:56:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "13a3b8613f760ed8602446d843e95d557fd802b6",
          "body": "* feat(landing): smooth scroll and stacked-section scrolling\n\n- html scroll-behavior: smooth, falling back to auto under\n  prefers-reduced-motion\n- content sections are position: sticky and stack: each section pins as\n  it fills the viewport and the next slides up over it. Sections keep a\n  transpar\n[…]\n, never under reduced motion, ctrl+wheel zoom untouched, and\nkeyboard/scrollbar/anchor movement resyncs the target. scrollTo uses\nbehavior: \"instant\" per tick so the CSS smoothing doesn't double-ease.",
          "is_bot": false,
          "headline": "feat(landing): smooth scroll and stacked-section scrolling (#185)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-13T00:56:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "35861927186c9d7076a1bde89eafc39c9068e4f0",
          "body": "* fix(landing): fingerprint static asset URLs; add hero engraving\n\nTwo changes:\n\n- cache busting: /static responses are edge/browser-cached for hours,\n  so deploys shipped fresh HTML against stale CSS/JS — the setup-complete\n  fixes were invisible for up to 4h after deploy. Every template asset\n  UR\n[…]\nimperceptible — the raster is ~100vh tall, so bottom vs\ncenter anchoring looked identical. bottom: -18vh crops the lower fifth\nbelow the edge so the figure visibly rises from the bottom of the\nscreen.",
          "is_bot": false,
          "headline": "fix(landing): fingerprint static asset URLs; add hero engraving (#184)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-13T00:32:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2c76dd42051e954a0ff518c4084290c41cf29ed9",
          "body": "…e on bad handoff (#183)\n\nPost-launch feedback on the setup-complete page:\n\n- drop the \"GitHub linked\" header status: it was the third flex item in\n  the space-between header, pushing the nav to the center; with it gone\n  the nav sits right-aligned again and the @login nav swap plus the\n  personaliz\n[…]\n with an\n  ellipsis on one line and scrolls horizontally; the homepage curl\n  command remains fully visible (guard test unchanged)\n- the token-safety warning renders in the design's bright accent gold",
          "is_bot": false,
          "headline": "fix(landing): polish setup-complete — right-aligned nav, redirect hom…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-12T23:42:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4faaca76052114c747646f39b109e8f2021e0737",
          "body": null,
          "is_bot": false,
          "headline": "fix(cli): tolerate unwritable auto-update state (#182)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-12T23:30:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80e2145187cc929c1d74f4fb25741b5c39286292",
          "body": "…#181)\n\nLanding revision in three parts:\n\n- copy/structure: plain-language hero subheading, positive product\n  definition, merge the three overlapping trust sections into one,\n  fold harness into install, drop redundant economy checklist and the\n  spec-language caveat (honesty anchors preserved; pol\n[…]\nain homepage (hidden outside setup_mode + .cta[hidden] CSS fix);\n  the dedicated \"sign in with GitHub again\" retry link is gone — the\n  pre-authenticated install CTA doubles as the expired-state retry",
          "is_bot": false,
          "headline": "fix(landing): copy rewrite, mobile perf path, setup-state CTA fixes (…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-12T23:08:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c3c201b0c946cf99789c1778e05e1f21bdab95a4",
          "body": "* feat(cli): auto-github-pr submissions surface\n\n- sync OpenAPI contract from private backend changes\n- regenerate client models/operations removing register-pr\n- add accepts_github_prs to bounty create/update, github_pr to submission create\n- remove register-pr command; open-pr becomes repair comma\n[…]\nrender_bounty helper that duplicated the GitHub PR line\n- print _bounty_github_pr_line in create, update and get (human mode only)\n- JSON output unchanged: emit(result, json_output=config.json_output)",
          "is_bot": false,
          "headline": "feat(cli): Phase 15.5.2 auto GitHub PR submissions (#179)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-12T17:25:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ef51c768b0d42c2a5577ebca42473d8a026f8e02",
          "body": "…en tests (#180)\n\nBack-ports the reply_opened_unfunded fix that landed only in the\nvendored private copy (Copilot autofix on the private PR): the top-up\nhost is derived from bounty_url instead of hardcoding https://logion.sh,\nso staging/self-hosted deployments point users at the right host.\n\nAdds TestRepliesGolden mirrored byte-identically in both repos\n(15.3/16.11 parity discipline) so this reply's behavior drifting in one\ncopy fails that repo's CI.",
          "is_bot": false,
          "headline": "fix(bot): derive top-up URL from bounty_url; pin reply copy with gold…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-12T01:26:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a2ea3218d83302067c318dd8c46137c13586400f",
          "body": "* feat(bot): issue-mention bounty bot grammar, parser, and replies\n\n* fix(deps): track packages/bot in the deps lock guardrail\n\ncheck_deps_lock.py enumerates pyprojects explicitly, so the new\npackages/bot workspace member was invisible to make check-deps-lock.\nAdd it to the list and regenerate .deps\n[…]\nAdd reply_refused_course_slug_not_found so a slug typo gets a precise\n  refusal instead of the misleading multiple-courses message.\n- Add SPDX headers to the new package and re-sort known-first-party.",
          "is_bot": false,
          "headline": "feat(bot): issue-mention bounty bot grammar, parser, and replies (#178)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-12T00:31:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a6991f3cb78077f401cb1d4554f60b1089949f19",
          "body": null,
          "is_bot": false,
          "headline": "fix(scanners): match quoted uv dependencies (#177)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-11T11:22:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c3693d2213ed4eeffd09ab236acec4f6b375319",
          "body": null,
          "is_bot": false,
          "headline": "fix(scanners): block runtime code acquisition (#176)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-11T07:27:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4aa4858848772984f1be2183df75efafbd286a9d",
          "body": "… JSON envelopes (#175)\n\nPhase 15.5 gap closure on the CLI submission surface:\n\n- open-pr/register-pr are mutating and now require --yes (require_yes),\n  matching accept/reject/withdraw and the companion confirmation policy\n- fork_required responses render FORK_NEXT_STEPS (branch to push,\n  register\n[…]\nrom the\n  rev-parse that resolves ROOT, so check-models finds the contract when\n  invoked from the pre-commit hook (git exports GIT_DIR to hooks and\n  --show-toplevel then resolves to packages/client)",
          "is_bot": false,
          "headline": "fix(cli): gate bounty PR commands behind --yes, add fork guidance and…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-11T03:14:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4e3fcff90c0cb9596ede5aeb53d7ccce557baf61",
          "body": "…it, noindex, @login nav (#172)\n\n- setup-complete.js: strip the fragment even without #hid and show the\n  styled expired state on direct visit / refresh after claim (was stuck\n  on 'linking your GitHub account…' forever)\n- setup-complete.js: stop replacing the 'GitHub linked' heading with the\n  raw \n[…]\nomplete: Cache-Control no-store + X-Robots-Tag noindex,\n  removed from sitemap, robots.txt disallows /setup/ for every UA group\n- tests: invert the sitemap lock, cover headers, robots and the nav hook",
          "is_bot": false,
          "headline": "fix(landing): setup-complete follow-ups — expired state on direct vis…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-10T23:12:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0836859e7325adaab148b5c8b33af68b40170e33",
          "body": "chore: sync OpenAPI contract from logion-private",
          "is_bot": false,
          "headline": "Merge pull request #165 from nicolasmelo1/automation/sync-openapi",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-10T02:12:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c0e30671ccf14427e32057c2ea9568f4952fcab9",
          "body": "feat(cli/sdk): bounty submission PR open/register commands",
          "is_bot": false,
          "headline": "Merge pull request #169 from nicolasmelo1/feat/phase-15.5-cli-sdk-v2",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-10T02:08:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aa3050009ed913ef68ddf4a3ec02a3c2623a6fe3",
          "body": null,
          "is_bot": false,
          "headline": "feat(cli/sdk): bounty submission PR open/register commands",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-10T02:04:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6a0b7f618d3d285a043726963389d87229bc623",
          "body": null,
          "is_bot": false,
          "headline": "chore: sync OpenAPI contract from logion-private",
          "author_name": "nicolasmelo1",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-10T00:31:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db0d40fa5df0af5e029dc200a48c9cfb1504de33",
          "body": "… (#167)\n\n* docs(readme): reframe to the end-goal — verifiable capability network\n\nLead with the end goal (proof over popularity, a loop not a transaction,\nskills as the wedge not the ceiling, one node among many) and add an honest\n'What's live today' vs 'Where it's going' split so the shipped marke\n[…]\nd \"roadmap\" — public-audit forbids planning vocabulary\n\nThe public-audit guardrail (and its test) forbid the word \"roadmap\"/\"Phase\";\nreword the \"where it's going\" intro to \"what we are building next\".",
          "is_bot": false,
          "headline": "docs(readme): reframe to the end-goal — verifiable capability network…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-09T20:08:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "99bf70b48cc89e1e5e6e94f443e3056012ac2233",
          "body": "…oute with setup_mode context\\n- Render linked GitHub state with masked install command CTA\\n- Add setup-complete.js to claim handoff via URL fragment\\n- Update site.yaml copy and hide sign-in CTA in setup mode\\n- Add landing route tests (#156)",
          "is_bot": false,
          "headline": "feat(landing): setup-complete handoff page\\n\\n- Add /setup/complete r…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-09T16:02:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20d2d4debbf52e7fb1a1450668bf171e7e756302",
          "body": null,
          "is_bot": false,
          "headline": "fix(social-management): harden file post input (#166)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-09T16:02:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bed9a83d9cdc9a2721c301a41e6ca065cabafdb7",
          "body": "…xpired invite in README badge\\n- Replace expired invite in landing site footer (#158)",
          "is_bot": false,
          "headline": "docs: update Discord invite link to current vanity URL\\n\\n- Replace e…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-08T14:22:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70fc034291c8a0091fe09f435fb982362f7cde61",
          "body": "* feat(social-management): add --file option to post commands\\n\\n- Allow Discord and X posts to be read from a file\\n- Preserves real newlines from the file (e.g. for Discord formatting)\\n- Validate that at least one of --text or --file is provided\\n- Update README examples and add CLI tests\n\n* Pote\n[…]\nnding\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(social-management): add --file option to post commands (#157)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-08T14:17:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d18bb5d351ad9dd72ee2a82641ed042b0611d9c7",
          "body": "* feat(social-management): add alerts channel support for Discord read/post\n\n- Add 'alerts' webhook slot (DISCORD_WEBHOOK_ALERTS) to constants and config\n- Add DISCORD_CHANNEL_ALERTS env var for read target\n- Add --channel flag to 'discord read' (support|alerts, default: support)\n- Add 'alerts' to -\n[…]\n third-party content is vendored: tests are gated behind\nLOGION_SKILLMAP_NET_FIXTURES=1 and skip when gh is unavailable, so normal\ntest/pre-commit runs don't hit the network. Pins recorded 2026-07-07.",
          "is_bot": false,
          "headline": "feat(social-management): add alerts channel support (#154)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-08T00:23:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "99d15f80e37d266180858eeffa7447e89892f249",
          "body": "* feat(skillmap): add deterministic package-map inference engine\n\n- logion-skillmap stdlib-only package with parser, validator, inference, spec conformance, and resolver\n- Precedence: author map > plugin manifest > skill scan\n- Passes: exclusion, harness-mirror dedup, metadata, spec conformance, emi\n[…]\nt.toml files\nthat did not include packages/skillmap/pyproject.toml. CI failed because\nthe new dependency (pyyaml) was not tracked by the gate.\n\n* fix(skillmap): address Copilot round-2 review comments",
          "is_bot": false,
          "headline": "feat(skillmap): add deterministic package-map inference engine (#153)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-07T22:39:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f13264b10fc807e16db036492eb34e09620c8888",
          "body": "… (#155)\n\nTwo CLI improvements:\n\n1. `logion completion <bash|zsh|tcsh>` prints a tab-completion script\n   generated by introspecting the live argparse tree via shtab, so every\n   command, subcommand, and flag is covered and stays in sync with no\n   hand-maintained list. Supports --json (script wrapp\n[…]\nwser flag fall back to the\n   copy-paste instructions.\n\nBrowser helpers live in a new identity/_browser.py to keep github.py\nunder the per-file line budget. shtab added to .deps.lock.json review gate.",
          "is_bot": false,
          "headline": "feat(cli): shell tab-completion + auto-open browser in github connect…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-07T22:29:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d192cf68f47cefb7c9e8ea50ffc49a12af2a405b",
          "body": "The 0.1.13 release commit tripped the public audit on main (PR Safety\nfailure): the auto-generated changelog carried 'Phase 18.3' and a\nprivate repo name from commit subjects.\n\n- Reword the two offending 0.1.13 changelog lines.\n- Sanitize commit subjects in the changelog generator (Phase->phase,\n  r\n[…]\nmes -> neutral wording).\n- Validate the generated entry against the public-audit patterns\n  before writing, so future leaks fail the release early instead of\n  breaking main after the tags are pushed.",
          "is_bot": false,
          "headline": "fix(release): keep generated changelog public-safe",
          "author_name": "Nicolas Melo",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-07T17:00:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2ccf9eccd0ee5e8e770b0286b96d0425cd0caade",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' of https://github.com/nicolasmelo1/logion",
          "author_name": "Nicolas Melo",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-07T16:53:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87e3fdfe182fc299e49639882e675d70174c94a9",
          "body": null,
          "is_bot": true,
          "headline": "chore(release): 0.1.13",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-07T16:52:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8e7ef362d6dd12e3b98121e9324e4ae921c11382",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' of https://github.com/nicolasmelo1/logion",
          "author_name": "Nicolas Melo",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-07T03:43:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e3f1d3011b96bcf56c4bf0313a0fb3b4bf5e5a78",
          "body": null,
          "is_bot": false,
          "headline": "fix(cli): harden setup token onboarding (#152)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-07T01:25:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8b4794811c739a3cb0eeb5462e00bba4741a7e49",
          "body": "* feat(landing): add GitHub sign-in CTA to nav and hero\n\n* test(landing): add sign-in CTA test across all surfaces\n\nAdd test_signin_cta_present_on_all_surfaces asserting the GitHub\nsign-in href appears on HTML, markdown, and llms-full.txt surfaces.\nAlso add sign-in reference to landing.md for markdo\n[…]\nore[attr-defined] for client.v1.setup_tokens.redeem\n  (resource not yet in generated SDK)\n- Remove test_setup_token_flag_allows_noninteractive (tested\n  unreachable path; env-var path is the real one)",
          "is_bot": false,
          "headline": "feat(landing): landing GitHub signin (#150)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-06T23:49:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "18c6b529b508eee7bbad4d084211aeb7740af0cc",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' of https://github.com/nicolasmelo1/logion",
          "author_name": "Nicolas Melo",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-06T21:46:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4337022ca2738306fbcb50e8d6f227fb60ef7eb4",
          "body": "… to haiku (#149)\n\n* refactor(proving-ground): flatten package layout, default claude-code to haiku\n\n- Move src/logion_agent_proving_ground/ to agent_proving_ground/ at the\n  package root; update imports, pyproject packaging/entry point, ruff\n  config, README, and Makefile lint/typecheck paths accor\n[…]\neded fixtures. Assertions can set\n  include_baseline: true to opt out of baseline-delta filtering, and\n  course_exists without owner_agent now searches all roles instead of\n  querying unauthenticated.",
          "is_bot": false,
          "headline": "refactor(proving-ground): flatten package layout, default claude-code…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-06T21:44:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f5116bf046e4da9ff815bf99be176cfd48da0785",
          "body": "…bounty in mock loop (#148)\n\n- docs/e2e-marketplace-loop.md referenced logion-private/workspace paths,\n  tripping the public-safe audit; moved to workspace shared-docs\n- proving-ground README: drop private repo references and the doc link\n- mock adapter: add fund_bounty operation (open -> funded + ledger debit)\n  so the scripted marketplace_loop satisfies the new status: funded assertion",
          "is_bot": false,
          "headline": "fix(ci): move private-referencing e2e guide out of public repo, fund …",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-06T17:04:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a98a9b0cd22279073ebb3ce509c3ead66c3078b5",
          "body": "…bounty in mock loop\n\n- docs/e2e-marketplace-loop.md referenced logion-private/workspace paths,\n  tripping the public-safe audit; moved to workspace shared-docs\n- proving-ground README: drop private repo references and the doc link\n- mock adapter: add fund_bounty operation (open -> funded + ledger debit)\n  so the scripted marketplace_loop satisfies the new status: funded assertion",
          "is_bot": false,
          "headline": "fix(ci): move private-referencing e2e guide out of public repo, fund …",
          "author_name": "Nicolas Melo",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-06T16:46:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a2292d363630c4ad1f9e3d3f4c7ec7f749008da",
          "body": "- HermesDriver and ProviderDriver now read model/provider from\n  driver_config and inject --model/--provider flags into the CLI\n  command, overriding any default_args values.\n- marketplace_loop.yaml defaults to glm-5.1 on ollama-cloud.\n- _override_flag() helper replaces existing flag values instead of\n  appending duplicates.\n- Added unit tests for both HermesDriver and ProviderDriver config.\n- Updated e2e guide with model/provider selection docs and cost table.",
          "is_bot": false,
          "headline": "feat(proving-ground): add model/provider config to driver_config",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-06T16:34:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6dde8d8eb2aed85b6b844a9213bd4a6326ac28c",
          "body": "Document the full marketplace_loop e2e setup procedure including\nDB migration, credit seeding, stale data cleanup, and troubleshooting.\nUpdate agent-proving-ground README with prerequisites for clean runs.",
          "is_bot": false,
          "headline": "docs(proving-ground): add e2e reproducible setup guide",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-06T16:13:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22ca96a240800a4c81902e2f275fd9f81e82f4d1",
          "body": "…cept\n\n- Change creator_opens_bounty assertion from status:open to status:funded\n  since the agent naturally funds the bounty during creation\n- Add fund step to opens phase success_hint\n- Remove fund step from accepts phase success_hint (already done)",
          "is_bot": false,
          "headline": "fix(proving-ground): bounty status funded, fund in opens phase not ac…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-06T15:35:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf82186a17766960c1cc20fc4b3d9dd9a17aea76",
          "body": "…sts query",
          "is_bot": false,
          "headline": "refactor(proving-ground): extract candidates variable in purchase_exi…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-06T15:21:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1fffaa03113f7dbc9ebecbd992b47d5d750a62da",
          "body": "…y accept hint",
          "is_bot": false,
          "headline": "fix(proving-ground): increase max-turns to 80, add fund step to bount…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-06T13:55:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b90b6debcb534d573403e60402092d1f58ed3bc6",
          "body": "* fix(proving-ground): phase-isolated scaffolding and bounty submission visibility\n\nTwo bugs uncovered by the marketplace_loop e2e run:\n\n1. Hermes prompt contamination: _build_prompt() unconditionally\n   injected course-creation scaffolding into every phase, causing\n   the operator agent to create a\n[…]\nat session dicts (for backward compat\nor direct SDK use) still work since they lack the envelope markers.\n\nAdds a regression test that wraps a session in the v1 envelope and\nasserts the push succeeds.",
          "is_bot": false,
          "headline": "Fix/cli uploads push v1 envelope (#145)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-06T12:48:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8291fed38e579f36035db2fcef55ed9a0d7b40e0",
          "body": "… visibility (#146)\n\nTwo bugs uncovered by the marketplace_loop e2e run:\n\n1. Hermes prompt contamination: _build_prompt() unconditionally\n   injected course-creation scaffolding into every phase, causing\n   the operator agent to create a NEW course instead of approving\n   the creator's pending publi\n[…]\nsubmissions; add creator_agent to the\n   marketplace_loop scenario params.\n\nAlso adds 15 regression tests for _phase_scaffolding and\n_build_prompt, and .gitignore entries for proving-ground artifacts.",
          "is_bot": false,
          "headline": "fix(proving-ground): phase-isolated scaffolding and bounty submission…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-06T12:47:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fd3827fc5b1784f98f99d09af89e4a592a1371a6",
          "body": null,
          "is_bot": false,
          "headline": "fix(agent-proving-ground): fix Hermes local-devrig flow (#144)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-06T01:28:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "02b1e3c96576f09c8fe1811d04e7f5051c3dc86d",
          "body": null,
          "is_bot": false,
          "headline": "fix(agent-proving-ground): isolate marketplace assertions (#143)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-05T17:58:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ba7ff5deda2d1500c72b7055cc7e7e8b4747a02",
          "body": "…nd local assertions (#142)\n\n- Add remote and local-devrig API adapters.\n- Add env parsing helpers for devrig.env.\n- Add stdlib-urllib HTTP health check helpers.\n- Add capability-gated local assertions: logs, db, events.\n- Wire new adapters and assertions into CLI/registry.\n- Pass agent_roles into create_world so local-devrig can override roles.\n- Add unit tests for adapters, env parsing, and local assertions.\n\nAll changes are local to packages/agent-proving-ground.",
          "is_bot": false,
          "headline": "feat(agent-proving-ground): Phase 18.3 remote/local-devrig adapters a…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-05T15:48:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8787847610b89ba6b3e68d77ac5eefe9cbd7e44",
          "body": null,
          "is_bot": false,
          "headline": "feat(agent-proving-ground): add real agent drivers for phase 18.2 (#140)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-05T03:08:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50e20ae9f37f5b612be339002981bcbc0218990a",
          "body": "* feat: add agent-proving-ground package (phase 18.1 core)\n\nAdds logion-agent-proving-ground, a deterministic scenario runner for\nmulti-agent product proving ground.\n\nHighlights:\n- mock API adapter + scripted driver for scenario authoring\n- Pydantic YAML scenario schema with agents, phases, goals an\n[…]\n472+Copilot@users.noreply.github.com>\n\n* fix(agent-proving-ground): address latest copilot review\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: agent proving ground core (phase 18.1) (#139)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-04T19:52:00Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c65126e0ae21d9c5ade4e09605006884c48dd17d",
          "body": "Co-authored-by: nicolasmelo1 <12915742+nicolasmelo1@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore: sync OpenAPI contract from logion-private (#129)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-04T02:47:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4db67a79357350445b56b4bf5bde25b98282561e",
          "body": null,
          "is_bot": false,
          "headline": "Document admin devrig persona (#138)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-04T02:47:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd757dbc45f2255fb2ec6d45f96911e814e84db7",
          "body": "* feat(identity): add GitHub identity CLI commands and SDK methods\n\nImplements the public surface of GitHub Identity & OAuth Core.\n\n- Regenerated OpenAPI contract with GitHub OAuth endpoints\n- SDK: 6 identity resource methods (begin_authorization, complete_callback,\n  begin_device_flow, poll_device_\n[…]\ny, recall, and landing checks\n\n* chore(deps): sync uv lock\n\n* style(cli): format recall ranker and taxonomy test\n\n* fix(cli): align github identity flow\n\n* fix(cli): harden github identity json errors",
          "is_bot": false,
          "headline": "feat(identity): add GitHub identity CLI commands and SDK methods (#136)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-03T22:09:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6cab5629bf816eedcf5d75b56a9c16ba33a43de3",
          "body": "* feat(identity): add GitHub identity CLI commands and SDK methods\n\nImplements the public surface of GitHub Identity & OAuth Core.\n\n- Regenerated OpenAPI contract with GitHub OAuth endpoints\n- SDK: 6 identity resource methods (begin_authorization, complete_callback,\n  begin_device_flow, poll_device_\n[…]\nidentity, recall, and landing checks\n\n* chore(deps): sync uv lock\n\n* style(cli): format recall ranker and taxonomy test\n\n* fix(cli): align github identity flow\n\n* Sync agent skill copies after updates",
          "is_bot": false,
          "headline": "fix(cli): sync agent skill copies after updates (#137)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-03T21:10:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2a6c678a318d8a5696ca73996a59ce0c312a3bec",
          "body": "* feat(credits): add --currency flag to top-up CLI command\n\nThe CLI now accepts an optional --currency flag (default: usd) on\n`credits top-up`. When set to a non-USD currency, the backend converts\nthe charge to the buyer's local currency at the current exchange rate;\ncredits are always granted in US\n[…]\n_amount_minor from the backend PR #105. Regenerated from the\nFastAPI app and re-synced generated models. Removed the now-unnecessary\ntype: ignore[call-arg] workaround since currency is a native field.",
          "is_bot": false,
          "headline": "feat(credits): add --currency flag to top-up CLI command (#134)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-03T14:04:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a597feb152bcad20dc455080ac49a6994e44a709",
          "body": "…135)\n\n- docs/installer.md said the logion.sh redirect points at the latest\n  installer-v* release; the landing route actually redirects to the raw\n  scripts on main (release assets back the direct-GitHub path only)\n- README still framed PyPI/npm availability as 'shipping with the first\n  public release' with a pre-release badge; packages are live",
          "is_bot": false,
          "headline": "docs: fix installer redirect claim and post-publish README wording (#…",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-03T12:29:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d5eb5aff26ffd6663a93a8000e5e8d59550e34e",
          "body": null,
          "is_bot": true,
          "headline": "chore(release): 0.1.12",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-03T11:07:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1de4131c7d97fca51c83d9996872ff7f5ec6a3f0",
          "body": "The release orchestrator now collects merged PRs since the last\nrelease tag via git log, groups them by Conventional Commit type,\ncredits authors (including external contributors), and prepends a\nnew entry to releases/CHANGELOG.md during the release sequence.\n\nThis runs automatically as part of 'make release VERSION=X' — no\nmanual changelog editing needed. External contributors like first-time\nPR authors are credited by name in the Contributors line.",
          "is_bot": false,
          "headline": "feat(release): auto-generate changelog from merged PRs (#133)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-03T11:03:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "953b27faa1fdaffca2c46de8a6ec4f9d5c17e31a",
          "body": null,
          "is_bot": false,
          "headline": "fix(update): clean installer output and docs guidance (#132)",
          "author_name": "Nicolas Leal",
          "author_login": "nicolasmelo1",
          "committed_at": "2026-07-03T04:24:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "420560063943c6d3f34d9521754f92746d2d4a64",
          "body": "* fix(cli): align Codex skill path and companion cleanup\n\nSigned-off-by: maelrx <eumael.mkt@gmail.com>\n\n* docs(cli): clarify Codex skill sync wording\n\nSigned-off-by: maelrx <eumael.mkt@gmail.com>\n\n* fix(devrig): resolve harness review feedback\n\n---------\n\nSigned-off-by: maelrx <eumael.mkt@gmail.com>",
          "is_bot": false,
          "headline": "fix(cli): align Codex skill path and companion cleanup (#131)",
          "author_name": "M'ael",
          "author_login": "maelrx",
          "committed_at": "2026-07-03T00:36:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 42,
      "commits_last_year": 276,
      "latest_release_at": "2026-07-22T12:14:10Z",
      "latest_release_tag": "logion-skillmap-v0.1.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 11,
      "days_since_latest_release": 2,
      "mean_days_between_releases": 2.1
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 100,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "logion-cli",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "logion",
            "marketplace",
            "agent",
            "skill",
            "cli",
            "Development Status :: 3 - Alpha",
            "Intended Audience :: Developers",
            "Operating System :: OS Independent",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.13",
            "Topic :: Software Development :: Libraries"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/logion-cli/",
          "is_deprecated": false,
          "latest_version": "0.1.15",
          "repository_url": "https://github.com/nicolasmelo1/logion",
          "versions_count": 15,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 2675,
          "first_published_at": "2026-06-28T17:31:18.179929Z",
          "latest_published_at": "2026-07-19T01:48:44.386378Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        },
        {
          "name": "logion-client",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "agent",
            "logion",
            "marketplace",
            "sdk",
            "Development Status :: 3 - Alpha",
            "Intended Audience :: Developers",
            "Operating System :: OS Independent",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.13",
            "Topic :: Software Development :: Libraries"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/logion-client/",
          "is_deprecated": false,
          "latest_version": "0.1.15",
          "repository_url": "https://github.com/nicolasmelo1/logion",
          "versions_count": 10,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2026-06-28T17:25:09.233923Z",
          "latest_published_at": "2026-07-19T01:48:40.251614Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        },
        {
          "name": "logion-skillmap",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "logion",
            "skillmap",
            "package-map",
            "inference",
            "Development Status :: 3 - Alpha",
            "Intended Audience :: Developers",
            "Operating System :: OS Independent",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.11",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.13",
            "Topic :: Software Development :: Libraries"
          ],
          "ecosystem": "pypi",
          "matches_repo": null,
          "registry_url": "https://pypi.org/project/logion-skillmap/",
          "is_deprecated": false,
          "latest_version": "0.1.0",
          "repository_url": null,
          "versions_count": 1,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2026-07-22T12:13:58.217736Z",
          "latest_published_at": "2026-07-22T12:13:59.289043Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 2
        },
        {
          "name": "@logionsh/cli",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "logion",
            "cli",
            "marketplace",
            "agent"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@logionsh/cli",
          "is_deprecated": false,
          "latest_version": "0.1.15",
          "repository_url": "https://github.com/nicolasmelo1/logion",
          "versions_count": 15,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 3077,
          "first_published_at": "2026-06-28T17:40:39.731000Z",
          "latest_published_at": "2026-07-19T01:48:58.647000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        }
      ]
    },
    "popularity": {
      "forks": 2,
      "stars": 33,
      "watchers": 0,
      "fork_history": {
        "days": [
          {
            "date": "2026-07-02",
            "count": 1
          },
          {
            "date": "2026-07-10",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 2,
        "total_forks": 2
      },
      "star_history": null,
      "open_issues_and_prs": 9
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile",
        "packages/agent-companion/Makefile",
        "packages/agent-proving-ground/Makefile",
        "packages/client/Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "packages/client/src/logion/py.typed",
        "packages/npm-wrapper/tsconfig.json",
        "packages/skillmap/logion_skillmap/py.typed"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 60138,
      "source_files_sampled": 569,
      "oversized_source_files": 1,
      "agent_instruction_files": [
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 6968
    },
    "dependencies": {
      "manifests": [
        "pyproject.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 17,
        "malicious_count": 0,
        "assessed_package": "pypi:logion-cli@0.1.15",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "pypi"
      ],
      "dependencies": [
        {
          "name": "pyyaml",
          "manifest": "packages/agent-companion/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0,<7.0"
        },
        {
          "name": "pydantic",
          "manifest": "packages/agent-proving-ground/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.8"
        },
        {
          "name": "pyyaml",
          "manifest": "packages/agent-proving-ground/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0"
        },
        {
          "name": "rich",
          "manifest": "packages/agent-proving-ground/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=13.7"
        },
        {
          "name": "logion-client",
          "manifest": "packages/cli/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "logion-skillmap",
          "manifest": "packages/cli/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "pydantic",
          "manifest": "packages/cli/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7,<3.0.0"
        },
        {
          "name": "pyyaml",
          "manifest": "packages/cli/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0,<7.0"
        },
        {
          "name": "shtab",
          "manifest": "packages/cli/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.7,<2.0"
        },
        {
          "name": "email-validator",
          "manifest": "packages/client/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.1,<3.0.0"
        },
        {
          "name": "httpx",
          "manifest": "packages/client/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.27,<1.0.0"
        },
        {
          "name": "pydantic",
          "manifest": "packages/client/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7,<3.0.0"
        },
        {
          "name": "logion-skillmap",
          "manifest": "packages/indexer/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "pyyaml",
          "manifest": "packages/indexer/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0"
        },
        {
          "name": "fastapi",
          "manifest": "packages/landing/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.136.1,<0.137.0"
        },
        {
          "name": "jinja2",
          "manifest": "packages/landing/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.1.6,<4.0.0"
        },
        {
          "name": "markdown-it-py",
          "manifest": "packages/landing/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.0.0,<5.0.0"
        },
        {
          "name": "pyyaml",
          "manifest": "packages/landing/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0.2,<7.0.0"
        },
        {
          "name": "pyyaml",
          "manifest": "packages/scanners/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0,<7.0"
        },
        {
          "name": "pyyaml",
          "manifest": "packages/skillmap/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0"
        },
        {
          "name": "httpx",
          "manifest": "packages/social-management/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.28,<0.29"
        },
        {
          "name": "pydantic",
          "manifest": "packages/social-management/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.6,<3"
        },
        {
          "name": "pyyaml",
          "manifest": "packages/social-management/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0,<7.0"
        }
      ],
      "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": 3,
        "merged_prs": 184,
        "open_issues": 6,
        "closed_ratio": 0.333,
        "closed_issues": 3,
        "closed_unmerged_prs": 41
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "nicolasmelo1",
          "commits": 267,
          "avatar_url": "https://avatars.githubusercontent.com/u/12915742?v=4"
        },
        {
          "type": "User",
          "login": "nicolasfmelo",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/73129502?v=4"
        },
        {
          "type": "User",
          "login": "maelrx",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/184181604?v=4"
        }
      ],
      "contributors_sampled": 3,
      "top_contributor_share": 0.985
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "companion-publishability.yml",
        "copilot-pr-review.yml",
        "deploy-landing-vercel.yml",
        "install-smoke.yml",
        "pr-safety.yml",
        "pr-title.yml",
        "release-all.yml",
        "release-cli.yml",
        "release-client.yml",
        "release-companion.yml",
        "release-installer.yml",
        "release-npm.yml",
        "release-skillmap.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        "eslint.config.mjs"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json",
        "uv.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 9,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 5,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "28 out of 28 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/29 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "project was created within the last 90 days. Please review its contents carefully",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "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": 0,
            "reason": "27 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "6efa11ff0c1e8139620ef913a4e4e0bafb861b4a",
        "ran_at": "2026-07-24T14:14:46Z",
        "aggregate_score": 3.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-23T13:10:56Z",
      "oldest_open_prs": [
        {
          "number": 170,
          "created_at": "2026-07-10T11:22:13Z",
          "last_comment_at": "2026-07-10T23:16:16Z",
          "last_comment_author": "nicolasmelo1"
        },
        {
          "number": 171,
          "created_at": "2026-07-10T12:20:06Z",
          "last_comment_at": "2026-07-10T23:16:19Z",
          "last_comment_author": "nicolasmelo1"
        },
        {
          "number": 238,
          "created_at": "2026-07-24T01:50:59Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-23T13:07:40Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 159,
          "created_at": "2026-07-08T15:05:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 160,
          "created_at": "2026-07-08T15:05:25Z",
          "last_comment_at": "2026-07-09T22:04:26Z",
          "last_comment_author": "nicolasmelo1"
        },
        {
          "number": 161,
          "created_at": "2026-07-08T15:05:27Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 162,
          "created_at": "2026-07-08T15:05:29Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 163,
          "created_at": "2026-07-08T15:05:31Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 164,
          "created_at": "2026-07-08T15:05:33Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/nicolasmelo1/logion",
    "host": "github.com",
    "name": "logion",
    "owner": "nicolasmelo1"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 65,
      "inputs": {
        "security": 48,
        "vitality": 73,
        "community": 58,
        "governance": 52,
        "engineering": 90
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 73,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "commits_last_year": 276,
              "human_commit_share": 0.97,
              "days_since_last_push": 0,
              "active_weeks_last_year": 11
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "11/52 weeks with commits",
                "points": 7.6,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 11
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "276 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 276
                    }
                  }
                ],
                "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": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 42,
              "latest_release_tag": "logion-skillmap-v0.1.0",
              "releases_from_tags": false,
              "days_since_latest_release": 2,
              "mean_days_between_releases": 2.1
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "42 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 42
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 2 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~2.1 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 2.1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "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": "moderate",
        "name": "Community & Adoption",
        "value": 58,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 24,
            "inputs": {
              "forks": 2,
              "stars": 33,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "33 stars",
                "points": 24.4,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 33
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "2 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "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": 63,
            "inputs": {
              "packages": [
                "logion-cli",
                "logion-client",
                "logion-skillmap",
                "@logionsh/cli"
              ],
              "dependents": null,
              "ecosystems": "npm, pypi",
              "total_downloads": null,
              "monthly_downloads": 5752
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "5,752 downloads/month across npm, pypi",
                "points": 50.1,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 5752,
                      "ecosystems": "npm, pypi"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 52,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 16,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 3,
              "top_contributor_share": 0.985
            },
            "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 98% of commits",
                "points": 0.3,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 98
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "3 contributors",
                "points": 4.1,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "at_risk",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 47,
            "inputs": {
              "merged_prs": 184,
              "open_issues": 6,
              "closed_issues": 3,
              "issue_closed_ratio": 0.333,
              "closed_unmerged_prs": 41
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "33% of issues closed",
                "points": 15.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 33
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "184/225 decided PRs merged",
                "points": 31.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 184,
                      "decided": 225
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/29 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 62,
            "inputs": {
              "followers": 120,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "nicolasmelo1",
              "public_repos": 73,
              "account_age_days": 4055
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "120 followers of nicolasmelo1",
                "points": 15,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 120,
                      "login": "nicolasmelo1"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "73 public repos, account ~11 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 73
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 11
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "logion-cli",
                "logion-client",
                "logion-skillmap",
                "@logionsh/cli"
              ],
              "ecosystems": "npm, pypi",
              "any_deprecated": false,
              "min_days_since_publish": 2
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "4 package(s) on npm, pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 4,
                      "ecosystems": "npm, pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 2 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "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": "excellent",
        "name": "Engineering Quality",
        "value": 90,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "13 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 13
                    }
                  }
                ],
                "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": "eslint.config.mjs",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.mjs"
                    }
                  }
                ],
                "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": "28 out of 28 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "agents",
                "claude-code",
                "claude-code-skill",
                "clawhub",
                "directory",
                "hermes",
                "hermes-skill",
                "network",
                "openclaw",
                "skill",
                "skill-development",
                "skills",
                "skills-course",
                "logion",
                "ai",
                "ai-agent",
                "ai-agents",
                "llm",
                "llm-tools",
                "openai"
              ],
              "has_wiki": true,
              "homepage": "https://logion.sh",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://logion.sh",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "20 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 20
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 48,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": null,
            "notes": [],
            "value": 35,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 18,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 0,
              "scorecard_aggregate": 3.5
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 3.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "28 out of 28 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/29 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "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": "27 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "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 pypi:logion-cli@0.1.15 runtime dependency closure — what installing the published package pulls in — 17 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": "pypi:logion-cli@0.1.15",
                  "assessed": 17
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 17,
              "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": 17,
              "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": 4
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 76,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.969,
              "agent_instruction_files": [
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 6968
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "94 of 97 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 94,
                      "sampled": 97
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json",
                "uv.lock"
              ],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [
                "Makefile",
                "packages/agent-companion/Makefile",
                "packages/agent-proving-ground/Makefile",
                "packages/client/Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "packages/client/src/logion/py.typed",
                "packages/npm-wrapper/tsconfig.json",
                "packages/skillmap/logion_skillmap/py.typed"
              ],
              "agent_commit_share": 0.04,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile, packages/agent-companion/Makefile, packages/agent-proving-ground/Makefile, packages/client/Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile, packages/agent-companion/Makefile, packages/agent-proving-ground/Makefile, packages/client/Makefile"
                    }
                  }
                ],
                "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": "eslint.config.mjs",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.mjs"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "packages/client/src/logion/py.typed, packages/npm-wrapper/tsconfig.json, packages/skillmap/logion_skillmap/py.typed",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "packages/client/src/logion/py.typed, packages/npm-wrapper/tsconfig.json, packages/skillmap/logion_skillmap/py.typed"
                    }
                  }
                ],
                "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": "4 of the last 100 commits agent-authored or agent-credited",
                "points": 8,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 4,
                      "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 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "good",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 82,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 60138,
              "source_files_sampled": 569,
              "oversized_source_files": 1
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (packages/client/src/logion/py.typed, packages/npm-wrapper/tsconfig.json, packages/skillmap/logion_skillmap/py.typed)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "packages/client/src/logion/py.typed, packages/npm-wrapper/tsconfig.json, packages/skillmap/logion_skillmap/py.typed",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "1/569 source files over 60KB",
                "points": 54.9,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 569,
                      "oversized": 1
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "Could not fetch pypi package 'logion' from its registry",
    "Could not fetch pypi package 'logion-bot' from its registry",
    "Could not fetch pypi package 'logion-indexer' from its registry",
    "Could not fetch pypi package 'logion-landing' from its registry",
    "Could not fetch pypi package 'logion-scanners' from its registry",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-24T14:15:05.372069Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/n/nicolasmelo1/logion.svg",
  "full_name": "nicolasmelo1/logion",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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 StatistikenPyPI, npm.