Skip to content

chore: align manifest with canonical Pinata schema#3

Merged
ryanio merged 1 commit into
mainfrom
chore/manifest-schema-alignment
Apr 30, 2026
Merged

chore: align manifest with canonical Pinata schema#3
ryanio merged 1 commit into
mainfrom
chore/manifest-schema-alignment

Conversation

@ryanio
Copy link
Copy Markdown
Collaborator

@ryanio ryanio commented Apr 30, 2026

Summary

Follow-up to #2. I cross-referenced PinataCloud/agent-templates (specifically web-master, moonpay-defi-portfolio, moonpay-prediction-trader, and the schema docs embedded in useful-assistant/manifest.json) and found two issues with what #2 produced:

What #2 did Canonical convention Fix
Added template.version: "1.0.0" No template ever uses template.version. Not in the schema _docs block. Remove.
No top-level "$schema" field Every recent template includes "$schema": "https://agents.pinata.cloud/schemas/manifest.v1.json". Add.

The authorName / authorUrl / authorLogoUrl fields stay — useful-assistant's _docs block calls them partnerName/partnerUrl/partnerLogoUrl, but every actual shipped template (incl. the two MoonPay ones) uses author*. So author* is the de facto canonical form.

Changes

  • manifest.json: add $schema, remove template.version.
  • .github/workflows/validate.yml: enforce $schema matches the canonical URL, drop the template.version regex check, bound template.tags to ≤10 (per the schema docs).
  • CONTRIBUTING.md: rewrite the Versioning section — no template version field exists, so just track revisions via git tags. Same semver bump guidance.

Out of scope but worth flagging

The schema also supports tasks (cron-scheduled prompts injected as user messages). workspace/TOOLS.md already declares digestHourUtc: 14 as the daily-digest hour, but nothing actually fires it — the heartbeat only runs on idle compute, not on schedule. Wiring digestHourUtc to a manifest tasks entry would be a real follow-up. Not doing it here to keep this PR scoped to the schema-correctness fix.

Test plan

  • CI runs and passes on this PR
  • Confirm Pinata accepts $schema (it should — every other template has it)
  • Decide whether to do the tasks follow-up before submission

🤖 Generated with Claude Code

Cross-referenced PinataCloud/agent-templates. Two corrections:

- Drop the template.version field I added in #2. The canonical
  manifest schema (documented inline in
  openclaw/basic/useful-assistant/manifest.json's _docs block) has
  no template.version. None of the shipped templates use it.
  Track template revisions through git tags instead.
- Add the canonical "$schema" reference at the top of manifest.json.
  Every recent template (web-master, moonpay-defi-portfolio,
  moonpay-prediction-trader, useful-assistant) includes
  https://agents.pinata.cloud/schemas/manifest.v1.json — gives
  editors and CI a real schema to validate against.

CI updated: enforce $schema is set, drop the template.version
regex, and bound template.tags to ≤10 (per schema doc).

CONTRIBUTING.md versioning section rewritten — no version field to
bump, just tag releases.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ryanio ryanio merged commit f85a2b0 into main Apr 30, 2026
3 checks passed
@ryanio ryanio deleted the chore/manifest-schema-alignment branch May 7, 2026 00:19
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.

1 participant