| kind | No | Optional — usually INFERRED from whether you pass `tools` (tools present → 'mcp-tool' doer, else 'static-recipe' recipe). Declared so a manifest-shaped payload is accepted, not rejected. | |
| llms | No | Optional target clients. Defaults to ['claude','chatgpt','gemini'] when omitted. | |
| slug | No | Permanent URL slug, kebab-case (3–60, no leading/trailing hyphen). Verify with findagent_check_slug first. | |
| tags | No | Optional (≤10). Free-form lowercase tags ([a-z0-9- ]). | |
| title | No | Agent name (3–80 chars). Alias accepted: `name`. | |
| tools | No | Optional doer tools (full web-builder parity). Omit for a recipe agent. Each item's shape is defined in `items` — name/description/tool_type/action are the load-bearing fields; auth_ref must match a credential_slots[].ref whose allowed_hosts cover the action host (audience binding — enforced). | |
| tagline | No | One-line value prop (10–140). | |
| version | No | Optional semver release version for this listing (e.g. "1.0.0"). Self-described metadata only — the platform tracks the authoritative version separately. | |
| metadata | No | Optional professional listing metadata. { license?, homepage?, docs_url?, support_url?, support_email?, icon?, author?:{ name, url? }, maintainer?:{ name, url? } }. Every URL/icon must be https. An invalid block is dropped (not persisted). | |
| changelog | No | Optional human release notes for `version` (max 10000 chars). | |
| languages | No | Optional (≤20). Language/Framework slugs from findagent_list_tech_facets (software-development discipline only). | |
| guardrails | No | Optional declared guardrails (doer agents). { input?: { max_length?, deny_patterns?:string[], pii_redaction?:string[] }, output?: { schema? }, actions?: { [toolName]: { approval?:"none"|"human", max_amount?, rate_limit?:"10/hour", idempotent? } } }. You can only TIGHTEN — the platform always applies its mandatory rails. An invalid block fails the draft. | |
| price_type | No | Optional, default free. "paid" requires price_cents (charged only once Paddle is live). | |
| description | No | What it does / who it is for (50–4000). | |
| price_cents | No | Required when price_type=paid: a positive integer of US cents, max 50000 ($500). | |
| tech_domains | No | Optional (≤20). Tech Domain slugs from findagent_list_tech_facets (software-development discipline only). | |
| category_slug | No | The PRIMARY category: a TOP-LEVEL slug from findagent_list_categories. Alias accepted: `category`. At least one of {category_slug, additional_category_slugs} MUST be a discipline (category_type='discipline'), AND for EVERY top-level you select you MUST also include one of its OWN subcategories in additional_category_slugs. | |
| system_prompt | No | The agent instructions (50–20000 chars). | |
| example_prompts | No | 2–5 concrete asks (required). | |
| credential_slots | No | Optional. Each item declares the SHAPE of a secret (ref/label/allowed_hosts/auth_scheme…) — see `items`. DEFINITIONS ONLY — never send secret VALUES. | |
| additional_category_slugs | No | Optional (≤12). Extra slugs from findagent_list_categories. Include one subcategory under EVERY top-level you select (a subdiscipline under your discipline; a subindustry under any industry). Also where a discipline goes when the primary is an industry. | |