diff --git a/README.md b/README.md index db05eda..5220b5c 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ scripts/ validate.py structural checks (run in CI) mcp_smoke.py starts galaxy-mcp over stdio and checks its tool list cursor-deeplink.py generates / checks the "Add to Cursor" link in docs - export-hub.py renders docs/ as Galaxy Hub pages (content/tools/ai-agents/) + export-hub.py renders docs/ as Galaxy Hub pages (content/agents/plugins/) .github/ ci-tools/ CI-only npm deps (Pi loader check); not part of the Pi package workflows/validate.yml per-harness CI jobs (see Testing) @@ -150,8 +150,8 @@ python3 scripts/validate.py # what CI runs Only `plugins/galaxy-mcp/`, `docs/` and the hand-written manifest fields are edited here; changes to skill content belong upstream. The Galaxy Hub pages -under `/tools/ai-agents/` are generated from `docs/` with -`scripts/export-hub.py /content/tools/ai-agents`; rerun it and +under `/agents/plugins/` are generated from `docs/` with +`scripts/export-hub.py /content/agents/plugins`; rerun it and open a hub pull request after changing a guide. A GitHub Action runs the sync every Monday and opens a pull request when anything changed. diff --git a/scripts/export-hub.py b/scripts/export-hub.py index 0bdbeba..7e1fb28 100755 --- a/scripts/export-hub.py +++ b/scripts/export-hub.py @@ -1,14 +1,13 @@ #!/usr/bin/env python3 -"""Export docs/ as the Galaxy Hub page /tools/ai-agents/ (galaxyproject/galaxy-hub). +"""Export docs/ as the Galaxy Hub page /agents/plugins/ (galaxyproject/galaxy-hub). -Usage: scripts/export-hub.py /tools/ai-agents +Usage: scripts/export-hub.py /agents/plugins Writes ONE page, index.md, that combines: - - the landing template below (hero + animated shells via ), + - the landing template below (hero + animated shells via , + then the sections in the hub's full-width ag-band wrappers), - docs/galaxy-api-key.md as the "Get a Galaxy API key" section, - - every harness doc as a panel inside , -plus a redirect stub for each old per-harness URL (/index.md -> -/tools/ai-agents/#guide-) so existing links keep working. + - every harness doc as a panel inside . The docs remain the source of truth; rerun after editing them. Links between docs become in-page anchors, repo-relative links become GitHub URLs, each H1 is @@ -29,7 +28,6 @@ ROOT = Path(__file__).resolve().parent.parent DOCS = ROOT / "docs" REPO_URL = "https://github.com/galaxyproject/agentic-plugins" -HUB_BASE = "/tools/ai-agents" API_KEY_DOC = "galaxy-api-key.md" API_KEY_ANCHOR = "#get-a-galaxy-api-key" @@ -44,9 +42,6 @@ # ("cursor.md", "cursor", "Cursor"), ] -# Old per-page slugs that now redirect into the single page. -REDIRECTS = {"api-key": API_KEY_ANCHOR, **{gid: f"#guide-{gid}" for _, gid, _ in GUIDES}} - LANDING = f"""--- title: "Galaxy for AI Coding Agents" tease: "Connect Claude Code, Codex, Antigravity or Pi to your Galaxy server with curated Galaxy skills, or add the Galaxy MCP server to Claude Desktop as a one-click bundle." @@ -61,18 +56,7 @@ -Galaxy for AI coding agents installs the galaxy-mcp server, the galaxy-skills -and galaxy-dev-skills sets and the Workflow Foundry skills into Claude Code, -Codex, Antigravity or Pi; Claude Desktop gets the galaxy-mcp server as a -one-click bundle. Everything comes from the -[galaxyproject/agentic-plugins]({REPO_URL}) -repository, and everything you need is on this page: get an API key, then pick -your harness under [Set up your agent](#set-up-your-agent). - -
-Looking for a complete AI research assistant built around Galaxy rather than a -plugin for the agent you already use? See Orbit. -
+
## Before you start @@ -104,6 +88,10 @@ +
+ +
+ ## What the agent can do once connected Ask in plain language; the agent picks the Galaxy tools: @@ -123,6 +111,8 @@ - Skill content lives upstream in [galaxy-skills](https://github.com/galaxyproject/galaxy-skills) and [foundry](https://github.com/galaxyproject/foundry); the plugins mirror them weekly. + +
""" @@ -170,11 +160,6 @@ def main() -> int: out.mkdir(parents=True, exist_ok=True) (out / "index.md").write_text(landing()) print(f"wrote {out / 'index.md'}") - for slug, anchor in REDIRECTS.items(): - page = out / slug - page.mkdir(exist_ok=True) - (page / "index.md").write_text(f'---\nredirect: "{HUB_BASE}/{anchor}"\n---\n') - print(f"wrote {page / 'index.md'} -> {HUB_BASE}/{anchor}") return 0