One JSON-LD catalog, 16 SKILL.md files, attachable to any agentic runtime. Point your agent at the manifest, get back download URLs. Open standard (agentskills.io) — no SDK lock-in.
Every endpoint emits the same canonical skill identifiers (xrfp, xclause, etc.) so your agent can correlate across formats.
JSON-LD catalog (Schema.org + procureai:* namespace). 16 skills, each with identifier, name, description, pillar, trigger phrases, model routing, override files, license.
Plain-text index for LLM crawlers — every skill name, trigger phrase, and SKILL.md URL on one line each. Standard llms.txt format.
Open llms.txtReturns signed, time-limited download URLs for each SKILL.md + deliverable. Pass your email — auto-registered on first call. No CSRF, no separate subscription step.
See example belowDiscovery endpoints are open. Signed download URLs require an email — your agent POSTs once, gets auto-registered on first call, and receives time-limited signed URLs for every artifact.
curl https://procureai.tech/.well-known/skills.json \
| jq '.itemListElement[] | {id: ."@id", name, pillar}'
# → 16 skills with stable identifiers,
# pillar, trigger phrases, license
POST https://procureai.tech/api/agent-manifest
Content-Type: application/json
{
"email": "[email protected]",
"agent_id": "my-agent-v1",
"skills": ["xrfp", "xclause", "xspend"] // optional filter
}
# → 200 OK (email auto-registered if new; links valid for 7 days)
{
"ok": true,
"registered": true,
"expires_at": "2026-05-31T18:30:00Z",
"skills": [
{
"id": "xrfp",
"name": "xRFP — RFP Drafter",
"skill_md_url": "/downloads/skills/xrfp.md?sig=TOKEN&exp=1748736600"
}
/* ... 15 more */
],
"deliverables": [
{ "name": "procureai-suite.zip",
"url": "/downloads/procureai-suite.zip?sig=TOKEN&exp=1748736600" },
{ "name": "procureai-skills.zip",
"url": "/downloads/procureai-skills.zip?sig=TOKEN&exp=1748736600" },
{ "name": "procureai-roi-calculator.xlsx",
"url": "/downloads/procureai-roi-calculator.xlsx?sig=TOKEN&exp=1748736600" }
/* ... */
]
}
# → 400 (invalid email format)
# → 429 (rate limit — 30 calls/hour per IP)
import os, requests, pathlib, anthropic
# 1. POST manifest — auto-registers email on first call,
# returns signed download URLs (7-day TTL)
r = requests.post(
"https://procureai.tech/api/agent-manifest",
json={"email": os.environ["PROCUREAI_EMAIL"],
"agent_id": "my-agent-v1"},
)
r.raise_for_status()
manifest = r.json()
# 2. Pull each SKILL.md to a local cache dir
skills_dir = pathlib.Path("./skills")
skills_dir.mkdir(exist_ok=True)
for s in manifest["skills"]:
skill_path = skills_dir / s["id"]
skill_path.mkdir(exist_ok=True)
md = requests.get(s["skill_md_url"]).text
(skill_path / "SKILL.md").write_text(md)
# 3. Also grab the ROI calculator if you need it
xlsx = next(d for d in manifest["deliverables"]
if d["name"] == "procureai-roi-calculator.xlsx")
open("./roi-calculator.xlsx", "wb").write(
requests.get(xlsx["url"]).content)
# 4. Load a skill and pass to Claude as system prompt
client = anthropic.Anthropic()
skill = (skills_dir / "xrfp" / "SKILL.md").read_text()
resp = client.messages.create(
model="claude-opus-4-5",
max_tokens=4096,
system=skill,
messages=[{"role": "user",
"content": "Draft an RFP for managed cloud"}]
)
print(resp.content[0].text)
Same flow: HTTP node hits /.well-known/skills.json for discovery → POST to /api/agent-manifest with the access-listed email → loop SKILL.md files into your tool registry. Frontmatter description + when_to_use drive routing.
Want to read a SKILL.md before wiring an agent? Hit the catalog — every entry has a contentUrl field pointing to its public SKILL.md.
Enter your email — get signed download links for the full suite, the 16 skills zip, and the XLSX separately. Or pull all three programmatically via /api/agent-manifest.
CC-BY-4.0 · use freely in any agentic runtime · email required
SKILL.md is an open standard (agentskills.io). Every file in this suite is CC-BY-4.0 licensed — fork it, fine-tune it, ship it inside your own product. I don't run a control plane. I don't ingest your data. I don't see what you ask your agent to do.