Skip to content

Publish MCP abilities to ard-service on release#1179

Open
MathieuLamiot wants to merge 4 commits into
developfrom
feature/abilities-catalog-poc
Open

Publish MCP abilities to ard-service on release#1179
MathieuLamiot wants to merge 4 commits into
developfrom
feature/abilities-catalog-poc

Conversation

@MathieuLamiot

@MathieuLamiot MathieuLamiot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

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.json plus a human-browsable page.

What this PR does

  • Dumps Imagify's registered imagify/* abilities as JSON (via wp_get_abilities()) in CI and uploads them to ard-service's live upload endpoint.
  • Runs only on release (on: push: tags: ["*"]), matching this repo's existing WordPress.org deploy workflow (deploy-tag.yml) — not on every push to this branch anymore.
  • The ard-service upload step is non-blocking (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.
  • The JSON is also kept as a downloadable Action artifact, independent of whether the upload succeeds.

Requirements before this can run successfully

  • An ARD_SERVICE_API_TOKEN secret must be added to this repo's Actions secrets (Settings → Secrets and variables → Actions), scoped to only write the imagify namespace on ard-service.

Test plan

  • ARD_SERVICE_API_TOKEN secret added to repo settings
  • Push a real (or test) tag and confirm the workflow runs
  • Confirm the JSON artifact is attached to the workflow run
  • Confirm the manifest appears at ard-service's .well-known/ai-catalog.json under the imagify namespace
  • Confirm a deliberately broken upload (e.g. wrong token) still lets the release complete

🤖 Generated with Claude Code

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>
@codacy-production

codacy-production Bot commented Jul 11, 2026

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Coverage ∅ diff coverage

Metric Results
Coverage variation Report missing for 3fb41021
Diff coverage diff coverage (50.00%)

View coverage diff in Codacy

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.

MathieuLamiot and others added 2 commits July 13, 2026 16:07
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>
@MathieuLamiot MathieuLamiot changed the title PoC: dump Imagify abilities catalog as JSON in CI Publish MCP abilities to ard-service on release Jul 13, 2026
@MathieuLamiot
MathieuLamiot requested review from Honemo and Miraeld July 13, 2026 15:14
@MathieuLamiot
MathieuLamiot marked this pull request as ready for review July 13, 2026 15:14
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>
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.

2 participants