Publish MCP abilities to ard-service on release#1179
Conversation
Mirrors the working WP Rocket PoC on the same branch name: a dedicated integration test calls wp_get_abilities(), filters to imagify/* entries, and dumps the manifest as JSON to STDERR plus a file. A new CI workflow runs this in isolation (single PHP 8.2 job, not the full 5-version matrix) and uploads the JSON as a downloadable Action artifact. No upload endpoint exists yet — this only proves the extraction step, so the output can be manually validated against a local ard-service instance. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Coverage variation | Report missing for 3fb41021 |
| Diff coverage | ✅ ∅ diff coverage (50.00%) |
Coverage variation details
Coverable lines Covered lines Coverage Common ancestor commit (3fb4102) Report Missing Report Missing Report Missing Head commit (d28349d) 19533 629 3.22% Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch:
<coverage of head commit> - <coverage of common ancestor commit>
Diff coverage details
Coverable lines Covered lines Diff coverage Pull request (#1179) 0 0 ∅ (not applicable) Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified:
<covered lines added or modified>/<coverable lines added or modified> * 100%
1 Codacy didn't receive coverage data for the commit, or there was an error processing the received data. Check your integration for errors and validate that your coverage setup is correct.
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
The public upload endpoint is now live, so this PoC branch pushes its JSON manifest there in addition to the existing downloadable artifact. Auth token comes from the ARD_SERVICE_API_TOKEN secret — never hardcoded — which needs to be added to this repo's Actions secrets before this step will succeed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Trigger changes from push/PR on this side branch to on: push: tags: ["*"], matching this repo's existing WordPress.org deploy workflow (.github/workflows/deploy-tag.yml) — the upload now runs once, at the same point a real release ships, instead of on every push to a side branch. The ard-service upload step gets continue-on-error: true so a slow or unreachable ard-service instance can never block or fail a release — it's best-effort telemetry, not a release gate. Renamed the workflow (file + name) from "Abilities Catalog PoC" to "Publish MCP Abilities to ARD Service" now that it's wired to a real release event rather than a proof-of-concept side branch. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This workflow only runs after the release tag is already pushed, so a failed upload can never block or delay the release. continue-on-error was hiding that failure entirely instead — no red workflow run, no failure notification, nothing. Removing it lets a real failure surface the normal way (Actions tab, commit status, notification emails), so a stale catalog doesn't go unnoticed indefinitely. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
What is ard-service?
group.one is building a single, public registry of every AI-agent capability ("ability") our products expose — one catalog, following the Agentic Resource Discovery (ARD) standard, that both humans and AI agents can browse or query. WordPress plugins register abilities via WordPress's Abilities API, but each plugin only runs inside customers' own private WordPress installs — there's no stable public URL a central catalog could crawl. ard-service solves that: each plugin's release CI pushes its own abilities manifest to it, and it publishes the combined result at a public
.well-known/ai-catalog.jsonplus a human-browsable page.What this PR does
imagify/*abilities as JSON (viawp_get_abilities()) in CI and uploads them to ard-service's live upload endpoint.on: push: tags: ["*"]), matching this repo's existing WordPress.org deploy workflow (deploy-tag.yml) — not on every push to this branch anymore.continue-on-error: true): if ard-service is slow, unreachable, or rejects the upload, the step fails visibly in the Action log but never fails or blocks the release itself.Requirements before this can run successfully
ARD_SERVICE_API_TOKENsecret must be added to this repo's Actions secrets (Settings → Secrets and variables → Actions), scoped to only write theimagifynamespace on ard-service.Test plan
ARD_SERVICE_API_TOKENsecret added to repo settings.well-known/ai-catalog.jsonunder theimagifynamespace🤖 Generated with Claude Code