Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ jobs:
jq . manifest.json > /dev/null

# Required top-level keys + types
jq -e '.version | type == "number"' manifest.json > /dev/null
jq -e '."$schema" == "https://agents.pinata.cloud/schemas/manifest.v1.json"' manifest.json > /dev/null
jq -e '.version == 1' manifest.json > /dev/null
jq -e '.agent | type == "object"' manifest.json > /dev/null
jq -e '.template | type == "object"' manifest.json > /dev/null
jq -e '.skills | type == "array"' manifest.json > /dev/null
Expand All @@ -30,11 +31,10 @@ jobs:
jq -e '.agent.vibe | type == "string"' manifest.json > /dev/null
jq -e '.agent.emoji | type == "string"' manifest.json > /dev/null

# Template shape
# Template shape — note: schema doesn't define template.version
jq -e '.template.slug | type == "string" and test("^[a-z0-9-]+$")' manifest.json > /dev/null
jq -e '.template.version | type == "string" and test("^[0-9]+\\.[0-9]+\\.[0-9]+$")' manifest.json > /dev/null
jq -e '.template.category | type == "string"' manifest.json > /dev/null
jq -e '.template.tags | type == "array" and length > 0' manifest.json > /dev/null
jq -e '.template.tags | type == "array" and length > 0 and length <= 10' manifest.json > /dev/null
jq -e '.template.authorName | type == "string"' manifest.json > /dev/null

# Skills shape — every entry needs clawhub_slug + name
Expand Down
17 changes: 10 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,18 @@ See `README.md` → *Repository layout*. The short version: `manifest.json` defi

## Versioning

`manifest.json` has two version fields:
`manifest.json` has one version field — `version` (top-level integer) — which is the manifest **schema** version (currently `1`). Don't touch it unless the schema itself changes.

- `version` (top-level integer) — manifest **schema** version. Don't touch unless the schema itself changes.
- `template.version` (semver string) — this template's version. Bump on every change that ships to users:
- patch: doc tweaks, prompt fixes
- minor: new heartbeat steps, new memory schemas, new TOOLS.md fields
- major: breaking changes to memory layout, manifest shape, or env requirements
The template doesn't carry its own version field; track template revisions through git tags instead:

Tag releases on `main` after merge: `git tag v1.0.1 && git push --tags`.
```bash
git tag v1.0.1 && git push --tags
```

Use semver for tags:
- patch: doc tweaks, prompt fixes
- minor: new heartbeat steps, new memory schemas, new TOOLS.md fields
- major: breaking changes to memory layout, manifest shape, or env requirements

## Style

Expand Down
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"$schema": "https://agents.pinata.cloud/schemas/manifest.v1.json",
"version": 1,
"agent": {
"name": "NFT Collector Copilot",
Expand All @@ -8,7 +9,6 @@
},
"template": {
"slug": "nft-collector-copilot",
"version": "1.0.0",
"category": "actions & transactions",
"tags": ["nft", "opensea", "seaport", "privy", "collector", "defi"],
"authorName": "OpenSea",
Expand Down
Loading