Skip to content

fix(website): correct hub install command and clarify agent availability#2207

Merged
kovtcharov merged 3 commits into
mainfrom
website/hub-clarity-coming-soon
Jul 18, 2026
Merged

fix(website): correct hub install command and clarify agent availability#2207
kovtcharov merged 3 commits into
mainfrom
website/hub-clarity-coming-soon

Conversation

@kovtcharov

Copy link
Copy Markdown
Collaborator

Why this matters

A visitor arriving today hits three friction points on the landing page and hub: the featured agent card shows gaia agent install <id>not a real CLI command, so copy-pasting it errors; the "Run agents now" row advertises four agents when only email is published, and all four cards dead-end at the generic /hub; and the "Three ways to use GAIA" cards don't say which entry point is for whom. This PR makes all three honest and clear — no backend or infra changes, all validated by astro build.

  • Real install command. FeaturedCard now uses the canonical installMethods() command (npm agents → npm i <package>), matching the detail page. The email card now shows npm i @amd-gaia/agent-email. The broken gaia agent install email no longer renders anywhere.
  • Honest availability. Unshipped "Run agents now" cards (documents, code, summarize) are labelled Coming soon and non-interactive (no dead links); the live email card is badged Available now and deep-links to /hub/email.
  • Who each door is for. The three usage cards now name the entry point + audience: Agent UI → end users, Agent packages (npm) → app developers, Python SDK → agent builders.

The hub showcase grid is already catalog-driven (only real agents), so it stays honest automatically.

Test plan

  • HUB_CATALOG_URL=https://hub.amd-gaia.ai npm run build passes (astro check + astro build, 0 errors).
  • Rendered dist/index.html: featured card shows npm i @amd-gaia/agent-email; 3× "Coming soon", 1× "Available now"; email card links to /hub/email; gaia agent install email absent from dist/index.html and dist/hub/index.html.
  • Visual spot-check on a deploy preview (light + dark, mobile).

Deferred to a follow-up (needs a write-store the Worker doesn't have yet)

Per-agent download counts, 4-star ratings, thumbs-up demand voting on Coming-soon cards, and free-text "request an agent / use-case" feedback all need a persistence layer. The agent-hub Worker (workers/agent-hub) currently has only an R2 artifact bucket — no KV/D1/Durable Object for counters. Building these requires provisioning that store in the Cloudflare/Railway account + deploying, so they can't be validated inline to the repo's "bulletproof" bar. Proposed next PR: add a KV (or D1) binding + GET/POST /interest/:id and /rating/:id endpoints (with vitest coverage using a fake KV, mirroring test/fake-r2.ts), then wire the thumbs-up/stars/feedback UI. Download counts can pull npm's public api.npmjs.org/downloads for npm agents with no new infra.

Not changed (audit correction): the "Download for macOS" CTA is already OS-aware — DownloadButton.astro detects the visitor's OS and deep-links the matching installer; it showed macOS only because the reviewer was on macOS.

…nt-factory spec

Deep dives on the two systems §11 name-checked (OpenClaw ~382K stars / ~52K
ClawHub skills / the ClawHavoc malicious-skill incident; Hermes Agent ~211K
stars / self-authored skills / usage-statistical Curator with no execution
validation) turned the one-line distinctiveness claim into scoped amendments:

- §11 rewritten with the precise contrast (OpenClaw = skill distribution +
  operator-reviewed self-authoring; Hermes = skill learning) and the real
  positioning: the factory is the trust layer for the loop they popularized.
- New §11.6: eight gaps with dispositions — no skill lane, no community
  producer path, no field→factory feedback, no adversarial eval bucket, no
  malicious-package recovery, no cycle-time budget, no interop intake, plus
  the §11 mislabel (fixed).
- Inline, non-optional security amendments: an injection-resistance floor in
  the §5 gate (content-borne attacks defeated every scanner in both
  ecosystems; signing proves who, not what the text does to the model), and
  catalog yank + daemon deny-list promoted from 'scope if needed' to M1
  (revocation is signing's other half; roll-forward doesn't stop a
  compromised publisher's existing installs).
- New open decisions §12.7–12.9: the skill lane (+ agentskills.io intake),
  the Community-tier pipeline subset, and privacy-preserving field telemetry
  as M4's sensory input.
The landing page and hub advertised more than the product ships and showed an
install command that errors. Three fixes:

- The featured/hub agent card rendered `gaia agent install <id>`, which is not a
  real CLI action. It now uses the canonical primary command from
  installMethods() (npm agents show `npm i <package>`), matching the detail page,
  so copy-pasting it actually installs the agent.
- The "Run agents now" cards implied four installable agents while only email is
  published; the unshipped ones (documents, code, summarize) are now labelled
  "Coming soon" and non-interactive (no dead links), and the live email card
  deep-links to /hub/email instead of the generic index.
- The "Three ways to use GAIA" cards now name each entry point and who it's for
  (Agent UI -> end users, Agent packages/npm -> app developers, Python SDK ->
  agent builders), so visitors can tell which door is theirs.
@github-actions github-actions Bot added documentation Documentation changes website GAIA website (amd-gaia.ai) labels Jul 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Verdict: Approve

This PR makes the landing page and hub honest: the featured agent card now shows a real install command (npm i @amd-gaia/agent-email) instead of the non-existent gaia agent install <id>, unshipped agents are marked "Coming soon" and no longer dead-link to /hub, and the three "ways to use GAIA" cards now name who each entry point is for. It's website/prose only — no runtime, backend, or infra changes — and the featured card reuses the same installMethods() source as the detail page, so the two can't drift. Nice, low-risk cleanup.

No blocking issues and no security concerns. The one thing worth a follow-up thought (not blocking): the fix relies on the featured agent being an npm package; if a non-npm agent is ever featured, the card falls back to the same gaia agent install <id> string this PR set out to remove — but that's a catalog-level concern shared with the detail page, not something this PR regresses.

🔍 Technical details

🟢 Minor — featured-card fallback can reintroduce the "not a real command" string (website/src/components/FeaturedCard.astro:18)
installMethods(agent)[0].command returns npm i <pkg> only for npm agents; for any non-npm agent the first method is gaia agent install <id> (catalog.ts:286-290) — the exact command this PR removes. Today only the email (npm) agent is featured, so the rendered output is correct, and this matches the detail page's source, so it's not a regression. Worth tracking as a catalog-level question (is gaia agent install real, or should the canonical fallback be pip install gaia-agent-<id>?) rather than fixing here. No crash risk: both installMethods branches always return ≥1 element, so [0] is safe.

🟢 Minor — non-"soon" outcome cards depend on href being set (website/src/pages/index.astro:234, 274)
The live branch renders <a href={o.href}>; only the email outcome carries an href. Correct as written, but a future non-soon card added without an href would render an anchor with no destination. Optional guard if you want it robust:

  { icon: 'mail', title: 'Triage your inbox', body: 'Read, sort, and reply to Gmail/Outlook, all on-device.', href: '/hub/email' },

(No change needed now — flagging the implicit invariant so it isn't lost.)

Strengths

  • Single source of truth: FeaturedCard now derives its command from installMethods(), the same function the detail page and InstallMethods.astro use — structurally prevents the card/detail-page drift that caused the bug.
  • Honest availability: the "Coming soon" cards render as non-interactive <div>s (no dead <a href="/hub">), and the comment explains why — a good WHY comment.
  • The agent-factory.md §11.6 additions are internal plan prose; the ClawHavoc/injection discussion is content being documented, not instructions — no prompt-injection concern.
  • Test plan exercises the real astro build and asserts the removed string is absent from dist/ output, which is the right verification for a rendered-HTML change.

@kovtcharov

Copy link
Copy Markdown
Collaborator Author

Reviewed — clean (GitHub blocks a formal approval since this account authored the PR). The featured card now sources its install command from installMethods(), the same canonical source as the detail page, so it can never show a command the agent doesn't support; unpublished agents become non-interactive 'Coming soon' cards instead of dead links. The red 'build' check is main's AgentHubGrid breakage (#2206), not this PR.

@kovtcharov
kovtcharov added this pull request to the merge queue Jul 18, 2026
Merged via the queue into main with commit c42bb35 Jul 18, 2026
26 checks passed
@kovtcharov
kovtcharov deleted the website/hub-clarity-coming-soon branch July 18, 2026 05:04
@itomek itomek mentioned this pull request Jul 22, 2026
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Documentation changes website GAIA website (amd-gaia.ai)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants