原始 JSON 报告 机器可读
{
"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"
}