Skip to content

Add machine-readable plugins.json with sync validation#9

Merged
internet-dot merged 2 commits into
mainfrom
feat/plugins-json
Mar 30, 2026
Merged

Add machine-readable plugins.json with sync validation#9
internet-dot merged 2 commits into
mainfrom
feat/plugins-json

Conversation

@internet-dot

Copy link
Copy Markdown
Collaborator

Adds `plugins.json` for easy programmatic consumption by registries and tooling.

What:

  • `plugins.json` with all 19 community plugins: name, URL, owner, repo, description, category, `install_url`
  • `scripts/generate_plugins_json.py` regenerates the JSON from README.md
  • CI workflow that fails if `plugins.json` drifts from README

Why:
The HOL registry and other consumers need a structured data source. This keeps it single-source-of-truth with the README.

Schema:
```json
{
"name": "awesome-codex-plugins",
"version": "1.0.0",
"last_updated": "2026-03-30",
"total": 19,
"categories": ["Development & Workflow", "Tools & Integrations"],
"plugins": [{
"name": "...",
"url": "https://github.com/owner/repo",
"owner": "owner",
"repo": "repo",
"description": "...",
"category": "...",
"source": "awesome-codex-plugins",
"install_url": "https://raw.githubusercontent.com/.../plugin.json"
}]
}
```

To regenerate after editing README:
```bash
python3 scripts/generate_plugins_json.py
```

- Generate plugins.json from README.md Community Plugins section
- Include name, url, owner, repo, description, category, install_url
- Add scripts/generate_plugins_json.py to regenerate from README
- Add CI workflow to fail if plugins.json drifts from README

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a plugins.json registry and a Python script to automate its generation by parsing the README.md file. The review identifies that the committed plugins.json contains a future date for last_updated, which is inconsistent with the generation script. Additionally, the script hardcodes the 'main' branch in installation URLs, potentially breaking for repositories using 'master', and the datetime import should be moved to the top level to comply with PEP 8.

Comment thread plugins.json
"$schema": "https://json-schema.org/draft/2020-12/schema",
"name": "awesome-codex-plugins",
"version": "1.0.0",
"last_updated": "2026-03-30",

@gemini-code-assist gemini-code-assist Bot Mar 30, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved in commit 461196a.

"description": m.group(5).strip(),
"category": current_category,
"source": "awesome-codex-plugins",
"install_url": f"https://raw.githubusercontent.com/{owner}/{repo}/main/.codex-plugin/plugin.json",

@gemini-code-assist gemini-code-assist Bot Mar 30, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved in commit 461196a.

Comment thread scripts/generate_plugins_json.py Outdated


def main():
import datetime

@gemini-code-assist gemini-code-assist Bot Mar 30, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved in commit 461196a.

Comment thread scripts/generate_plugins_json.py Outdated
end = i
break

if start is None or end is None:

@kilo-code-bot kilo-code-bot Bot Mar 30, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved in commit 461196a.

on:
pull_request:
paths:
- README.md

@kilo-code-bot kilo-code-bot Bot Mar 30, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved in commit 461196a.

"description": m.group(5).strip(),
"category": current_category,
"source": "awesome-codex-plugins",
"install_url": f"https://raw.githubusercontent.com/{owner}/{repo}/main/.codex-plugin/plugin.json",

@kilo-code-bot kilo-code-bot Bot Mar 30, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved in commit 461196a.

@kilo-code-bot

kilo-code-bot Bot commented Mar 30, 2026

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Previous Issues — All Resolved

Severity File Line Issue Status
WARNING scripts/generate_plugins_json.py 30 end is None raised ValueError when "Community Plugins" was the last section ✅ Fixed — now defaults to len(lines)
SUGGESTION .github/workflows/validate-plugins.yml 6 CI paths filter didn't include the generator script ✅ Fixed — scripts/generate_plugins_json.py added to both triggers
SUGGESTION scripts/generate_plugins_json.py 66 Hardcoded main branch in install_url ⚠️ Acknowledged with TODO; runtime behavior unchanged
Files Reviewed (2 files)
  • scripts/generate_plugins_json.py — Fixed end is None edge case, moved import datetime to top-level, added TODO for default branch detection
  • .github/workflows/validate-plugins.yml — Added generator script to CI trigger paths

Reviewed by mimo-v2-pro-20260318 · 91,301 tokens

- Move import datetime to top-level imports (PEP 8)
- Fix end-is-None false negative when Community Plugins is last section
- Add TODO for install_url default branch assumption
- Add generator script to CI paths trigger
@internet-dot internet-dot merged commit f706ecc into main Mar 30, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant