Context
The /api/marketplace route exists. The marketplace.js route file exists. Now we need the data model, manifest standard, and seeded content to make the marketplace real. This is the "App Store" layer that lets the community publish and discover agents.
What to build
1. Agent manifest format (standard)
Create docs/marketplace/AGENT_MANIFEST.md defining the standard:
{
"id": "nova-backend",
"name": "Nova",
"description": "Backend engineering agent — reviews PRs, writes tests, refactors code, fixes bugs",
"version": "1.0.0",
"author": { "name": "Team Commonly", "url": "https://github.com/Team-Commonly" },
"license": "MIT",
"repository": "https://github.com/Team-Commonly/agent-nova",
"runtime": "openclaw",
"runtimeVersion": ">=2026.3.0",
"capabilities": ["code-review", "test-writing", "github", "pr-creation"],
"models": {
"primary": "openai-codex/gpt-5.4-mini",
"fallbacks": ["openrouter/nvidia/nemotron-ultra-253b-v1"]
},
"heartbeat": { "everyMinutes": 30, "global": true },
"avatar": "https://avatars.githubusercontent.com/u/...",
"tags": ["backend", "engineering", "github", "testing"],
"installCount": 0,
"verified": true
}
2. MarketplaceAgent model (backend/models/MarketplaceAgent.js)
MongoDB model with fields matching the manifest schema plus:
status: enum ['active', 'pending', 'deprecated']
submittedBy: ObjectId ref User
approvedBy: ObjectId ref User
approvedAt: Date
installCount: Number
rating: { average: Number, count: Number }
featured: Boolean
3. Marketplace API routes (backend/routes/marketplace.js)
GET /api/marketplace/agents — list, filter by ?tag=&runtime=&q=
GET /api/marketplace/agents/:id — single agent detail
POST /api/marketplace/agents/:id/install — install into specified pods
GET /api/marketplace/featured — featured/curated agents list
POST /api/marketplace/submit — submit new agent (pending review)
POST /api/marketplace/agents/:id/rate — rate an installed agent (1-5 stars)
4. Seed marketplace with Commonly's own agents
Create scripts/seed-marketplace.js that seeds 6 agents:
- Theo — Dev PM agent, manages tasks, reviews PRs, coordinates team
- Nova — Backend engineer, writes tests, fixes bugs, opens PRs
- Pixel — Frontend engineer, builds UI, reviews CSS/React PRs
- Ops — DevOps, manages CI/CD, monitors infra, writes deployment configs
- Liz — Community agent, monitors discussions, replies to threads
- X-Curator — Content curator, finds and shares interesting content
Each with full manifest data, verified: true, featured: true.
5. Install flow backend
POST /api/marketplace/agents/:id/install:
{ "podIds": ["..."], "config": {} }
- Validates agent manifest
- Calls existing
AgentInstallation.install() for each pod
- Returns
{ installed: true, installationIds: [...] }
- Increments
installCount
Acceptance criteria
Assignee
Nova (backend agent)
Context
The
/api/marketplaceroute exists. Themarketplace.jsroute file exists. Now we need the data model, manifest standard, and seeded content to make the marketplace real. This is the "App Store" layer that lets the community publish and discover agents.What to build
1. Agent manifest format (standard)
Create
docs/marketplace/AGENT_MANIFEST.mddefining the standard:{ "id": "nova-backend", "name": "Nova", "description": "Backend engineering agent — reviews PRs, writes tests, refactors code, fixes bugs", "version": "1.0.0", "author": { "name": "Team Commonly", "url": "https://github.com/Team-Commonly" }, "license": "MIT", "repository": "https://github.com/Team-Commonly/agent-nova", "runtime": "openclaw", "runtimeVersion": ">=2026.3.0", "capabilities": ["code-review", "test-writing", "github", "pr-creation"], "models": { "primary": "openai-codex/gpt-5.4-mini", "fallbacks": ["openrouter/nvidia/nemotron-ultra-253b-v1"] }, "heartbeat": { "everyMinutes": 30, "global": true }, "avatar": "https://avatars.githubusercontent.com/u/...", "tags": ["backend", "engineering", "github", "testing"], "installCount": 0, "verified": true }2. MarketplaceAgent model (
backend/models/MarketplaceAgent.js)MongoDB model with fields matching the manifest schema plus:
status: enum ['active', 'pending', 'deprecated']submittedBy: ObjectId ref UserapprovedBy: ObjectId ref UserapprovedAt: DateinstallCount: Numberrating: { average: Number, count: Number }featured: Boolean3. Marketplace API routes (
backend/routes/marketplace.js)4. Seed marketplace with Commonly's own agents
Create
scripts/seed-marketplace.jsthat seeds 6 agents:Each with full manifest data,
verified: true,featured: true.5. Install flow backend
POST /api/marketplace/agents/:id/install:{ "podIds": ["..."], "config": {} }AgentInstallation.install()for each pod{ installed: true, installationIds: [...] }installCountAcceptance criteria
AGENT_MANIFEST.mdfully documents the manifest standardGET /api/marketplace/agentsreturns correct data with filteringAssignee
Nova (backend agent)