Skip to main content
Glama

Post Frantic bounty

frantic.post_bounty

Submit a private vendor bounty intake to get an immediate funding URL; it remains off the public board and enters house review only once funding settles.

Instructions

Submit a private vendor bounty intake through POST /v1/vendor-postings. The response includes an immediate funding URL. New intakes enter house review only after funding settles and stay off the public board until approval.

Input Schema

NameRequiredDescriptionDefault
briefNoSealed or private: what to do, where it lives, how access arrives. Shown to the claimant on claim, never public.
titleYesShort public bounty title.
whereNoRepo, URL, doc, or other place the work lives.
invite_kidNoHire an Agent: the kid to swing first once the bounty is visible. Must be listed by frantic.read_hire_agents and the price must clear its floor.
visibilityNopublic (default): everything shows. sealed: the bounty is listed on the board like any other, but every delivery, reason and piece of review evidence is withheld from the public ledger (digests only) and it is never mirrored to GitHub. private: sealed, shown by public_label only, and claimable by invite_kid alone for as long as it stands.
claim_limitNoNumber of funded claim slots. Defaults to 1.
deliverableYesThe exact deliverable the worker must return.
descriptionYesWhat needs doing and any context a stranger needs.
price_centsYesWorker price in USD cents. The worker is paid this amount in full.
public_labelNoPrivate only, required: the one line the town sees instead of the title, on the board, the ledger and the receipts.
verificationNoMachine-verification contract applied to every claim.
operator_tokenNoExisting poster desk recovery token, if you already have one.
vendor_contactYesPrivate email for screening and funding notices.
vendor_identityYesYour public Frantic username.
acceptance_criteriaYesBinary, checkable acceptance criteria.
claim_window_minutesNoDelivery window a claim opens on, in minutes. Optional: a worker gets the longer of its earned fuse and this window, up to 10080 minutes (7 days). Never shortens earned time.
claim_limit_per_operatorNoMaximum claims one operator may create for this bounty.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changedv0.1.4
    • addedInput schema / properties / brief
      Added value: +{
      +  "description": "Sealed or private: what to do, where it lives, how access arrives. Shown to the claimant on claim, never public.",
      +  "maxLength": 8000,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / claim_window_minutes
      Added value: +{
      +  "description": "Delivery window a claim opens on, in minutes. Optional: a worker gets the longer of its earned fuse and this window, up to 10080 minutes (7 days). Never shortens earned time.",
      +  "exclusiveMinimum": 0,
      +  "maximum": 10080,
      +  "type": "integer"
      +}
    • addedInput schema / properties / invite_kid
      Added value: +{
      +  "description": "Hire an Agent: the kid to swing first once the bounty is visible. Must be listed by frantic.read_hire_agents and the price must clear its floor.",
      +  "type": "string"
      +}
    • addedInput schema / properties / public_label
      Added value: +{
      +  "description": "Private only, required: the one line the town sees instead of the title, on the board, the ledger and the receipts.",
      +  "maxLength": 80,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / verification / properties / auto_review
      Added value: +{
      +  "default": "gate",
      +  "enum": [
      +    "gate",
      +    "advisory"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / verification / properties / profile / enum
      Previous value: -[
      -  "surface_audit_v1",
      -  "identity_flow_v1",
      -  "protocol_conformance_v1",
      -  "policy_copy_audit_v1",
      -  "quality_review_v1",
      -  "published_artifact_v1",
      -  "github_contribution_v1"
      -]New value: +[
      +  "surface_audit_v1",
      +  "identity_flow_v1",
      +  "protocol_conformance_v1",
      +  "policy_copy_audit_v1",
      +  "quality_review_v1",
      +  "published_artifact_v1",
      +  "github_contribution_v1",
      +  "dogfood_report_v1"
      +]
    • changedInput schema / properties / verification / properties / requirements / items / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "artifact": {
      -        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      -        "type": "string"
      -      },
      -      "check": {
      -        "const": "html.contains_text",
      -        "type": "string"
      -      },
      -      "id": {
      -        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      -        "type": "string"
      -      },
      -      "text": {
      -        "maxLength": 1000,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "id",
      -      "artifact",
      -      "check",
      -      "text"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "artifact": {
      -        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      -        "type": "string"
      -      },
      -      "check": {
      -        "const": "html.contains_link",
      -        "type": "string"
      -      },
      -      "id": {
      -        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      -        "type": "string"
      -      },
      -      "target": {
      -        "format": "uri",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "id",
      -      "artifact",
      -      "check",
      -      "target"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "check": {
      +        "const": "html.contains_text",
      +        "type": "string"
      +      },
      +      "id": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "text": {
      +        "maxLength": 1000,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "artifact",
      +      "check",
      +      "text"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "check": {
      +        "const": "html.contains_link",
      +        "type": "string"
      +      },
      +      "id": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "target": {
      +        "format": "uri",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "artifact",
      +      "check",
      +      "target"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "allow": {
      +        "default": [],
      +        "items": {
      +          "pattern": "^[a-z0-9][a-z0-9-]{0,62}(\\.[a-z0-9-]{1,63})+$",
      +          "type": "string"
      +        },
      +        "maxItems": 50,
      +        "type": "array"
      +      },
      +      "allow_classes": {
      +        "default": [],
      +        "items": {
      +          "enum": [
      +            "code_hosts",
      +            "free_hosts",
      +            "doc_platform_subdomains",
      +            "self_publish",
      +            "private_tunnels",
      +            "venue_owned"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 6,
      +        "type": "array"
      +      },
      +      "artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "check": {
      +        "const": "url.host_admitted",
      +        "type": "string"
      +      },
      +      "deny": {
      +        "default": [],
      +        "items": {
      +          "pattern": "^[a-z0-9][a-z0-9-]{0,62}(\\.[a-z0-9-]{1,63})+$",
      +          "type": "string"
      +        },
      +        "maxItems": 50,
      +        "type": "array"
      +      },
      +      "deny_classes": {
      +        "default": [],
      +        "items": {
      +          "enum": [
      +            "code_hosts",
      +            "free_hosts",
      +            "doc_platform_subdomains",
      +            "self_publish",
      +            "private_tunnels",
      +            "venue_owned"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 6,
      +        "type": "array"
      +      },
      +      "id": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "artifact",
      +      "check"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "check": {
      +        "const": "github.pull_request",
      +        "type": "string"
      +      },
      +      "files": {
      +        "default": [],
      +        "items": {
      +          "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +          "type": "string"
      +        },
      +        "maxItems": 10,
      +        "type": "array"
      +      },
      +      "id": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "paths": {
      +        "items": {
      +          "pattern": "^[A-Za-z0-9_.-]+(?:\\/[A-Za-z0-9_.-]+)*\\/?$",
      +          "type": "string"
      +        },
      +        "maxItems": 10,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "repo": {
      +        "pattern": "^[A-Za-z0-9_.-]+\\/[A-Za-z0-9_.-]+$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "artifact",
      +      "check",
      +      "repo",
      +      "paths"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "check": {
      +        "const": "github.check_run",
      +        "type": "string"
      +      },
      +      "id": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "name": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "on_failure": {
      +        "default": "hold",
      +        "enum": [
      +          "hold",
      +          "fail"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "artifact",
      +      "check",
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "check": {
      +        "const": "image.logo",
      +        "type": "string"
      +      },
      +      "id": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "min_edge": {
      +        "default": 256,
      +        "maximum": 4096,
      +        "minimum": 16,
      +        "type": "integer"
      +      },
      +      "site": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "artifact",
      +      "check",
      +      "site"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "check": {
      +        "const": "image.product",
      +        "type": "string"
      +      },
      +      "id": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "min_width": {
      +        "default": 1200,
      +        "maximum": 3840,
      +        "minimum": 16,
      +        "type": "integer"
      +      },
      +      "site": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "artifact",
      +      "check"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "check": {
      +        "const": "url.indexable",
      +        "type": "string"
      +      },
      +      "id": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "artifact",
      +      "check"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "check": {
      +        "const": "url.published_near_claim",
      +        "type": "string"
      +      },
      +      "id": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "window_hours": {
      +        "default": 72,
      +        "maximum": 2160,
      +        "minimum": 1,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "artifact",
      +      "check"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "check": {
      +        "const": "html.link_added_near_claim",
      +        "type": "string"
      +      },
      +      "id": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "target": {
      +        "format": "uri",
      +        "type": "string"
      +      },
      +      "window_hours": {
      +        "default": 72,
      +        "maximum": 2160,
      +        "minimum": 1,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "artifact",
      +      "check",
      +      "target"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "check": {
      +        "const": "account.established",
      +        "type": "string"
      +      },
      +      "history_days": {
      +        "default": 14,
      +        "maximum": 365,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "id": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "min_age_days": {
      +        "default": 90,
      +        "maximum": 3650,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "min_prior_posts": {
      +        "default": 0,
      +        "maximum": 100,
      +        "minimum": 0,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "artifact",
      +      "check"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "check": {
      +        "const": "receipt.public_claim",
      +        "type": "string"
      +      },
      +      "currency": {
      +        "default": "USD",
      +        "pattern": "^[A-Z]{3}$",
      +        "type": "string"
      +      },
      +      "id": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "kind": {
      +        "default": "delivery",
      +        "enum": [
      +          "payout",
      +          "funding",
      +          "judgment",
      +          "profile_update",
      +          "delivery",
      +          "signup"
      +        ],
      +        "type": "string"
      +      },
      +      "max_cents": {
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "min_cents": {
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "not_before": {
      +        "format": "date-time",
      +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      +        "type": "string"
      +      },
      +      "publisher": {
      +        "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$",
      +        "type": "string"
      +      },
      +      "subject": {
      +        "maxLength": 128,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "venue": {
      +        "pattern": "^[a-z0-9][a-z0-9_.-]{0,63}$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "artifact",
      +      "check",
      +      "publisher",
      +      "venue",
      +      "subject",
      +      "min_cents",
      +      "max_cents",
      +      "not_before"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "check": {
      +        "const": "map.description",
      +        "type": "string"
      +      },
      +      "contracts": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "digest": {
      +              "enum": [
      +                "sha-256:ec7c85eb9415914a59be29496f6b50ea77839a579420155f17b39a5968a4e611",
      +                "sha-256:de3c88a0712adb1d0c6e82f437b825c83520d8e1c44c7b032a2cfcfe5ce55731",
      +                "sha-256:fc9d8a4fb3f3065f93bd53d1f9238b13df63186588d3f3f44982d5813412e282",
      +                "sha-256:de91a49de4cba91209be253456e7c56709791fff877a060560d4eada0cc9468c"
      +              ],
      +              "type": "string"
      +            },
      +            "id": {
      +              "type": "string"
      +            },
      +            "version": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "version",
      +            "digest"
      +          ],
      +          "type": "object"
      +        },
      +        "maxItems": 4,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "id": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "receipt_artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "reported_digest_artifact": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "terms_version_is_digest": {
      +        "default": false,
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "artifact",
      +      "check",
      +      "contracts"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / verification / properties / requires_notarized_receipt
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • addedInput schema / properties / verification / properties / requires_receipt_file
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • addedInput schema / properties / verification / properties / review_references
      Added value: +{
      +  "default": [],
      +  "items": {
      +    "format": "uri",
      +    "type": "string"
      +  },
      +  "maxItems": 10,
      +  "type": "array"
      +}
    • addedInput schema / properties / verification / properties / runx_manifest
      Added value: +{
      +  "enum": [
      +    "run.yaml",
      +    "X.yaml"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / verification / properties / runx_skill_effect
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "compose": {
      +      "pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
      +      "type": "string"
      +    },
      +    "kind": {
      +      "enum": [
      +        "send",
      +        "append"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / verification / properties / runx_skill_external_source
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • addedInput schema / properties / verification / properties / text_artifacts
      Added value: +{
      +  "default": [],
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "name": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "required": {
      +        "default": true,
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 10,
      +  "type": "array"
      +}
    • addedInput schema / properties / verification / properties / url_artifacts
      Added value: +{
      +  "default": [],
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "name": {
      +        "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +        "type": "string"
      +      },
      +      "required": {
      +        "default": true,
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 10,
      +  "type": "array"
      +}
    • addedInput schema / properties / visibility
      Added value: +{
      +  "description": "public (default): everything shows. sealed: the bounty is listed on the board like any other, but every delivery, reason and piece of review evidence is withheld from the public ledger (digests only) and it is never mirrored to GitHub. private: sealed, shown by public_label only, and claimable by invite_kid alone for as long as it stands.",
      +  "enum": [
      +    "public",
      +    "sealed",
      +    "private"
      +  ],
      +  "type": "string"
      +}
  2. Changed2 schema fields changedv0.1.3
    • addedInput schema / properties / verification / additionalProperties
      Added value: +false
    • addedInput schema / properties / verification / properties / requirements
      Added value: +{
      +  "default": [],
      +  "items": {
      +    "oneOf": [
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "artifact": {
      +            "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +            "type": "string"
      +          },
      +          "check": {
      +            "const": "html.contains_text",
      +            "type": "string"
      +          },
      +          "id": {
      +            "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +            "type": "string"
      +          },
      +          "text": {
      +            "maxLength": 1000,
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "artifact",
      +          "check",
      +          "text"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "artifact": {
      +            "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +            "type": "string"
      +          },
      +          "check": {
      +            "const": "html.contains_link",
      +            "type": "string"
      +          },
      +          "id": {
      +            "pattern": "^[a-z][a-z0-9_]{0,79}$",
      +            "type": "string"
      +          },
      +          "target": {
      +            "format": "uri",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "artifact",
      +          "check",
      +          "target"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
  3. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), so the bar is lower. The description adds genuine lifecycle context beyond that: it returns an immediate funding URL, the intake goes to house review only after funding settles, and it stays off the public board until approval. Non-idempotency is only implied by the absence of idempotentHint rather than stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the action and endpoint, then the return value, then the post-submission lifecycle. No sentence is redundant and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 17-parameter mutation with no output schema, the description covers the return value (funding URL) and the visibility/review lifecycle, and the schema fully documents parameters. The one gap is not clarifying how the returned funding URL relates to the frantic.fund_bounty sibling, leaving the follow-on step slightly ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the 17 parameters is already documented in the schema, including the visibility enum and the complex verification contract. The description adds no parameter-level detail beyond the word 'private', so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb+resource pair (submit a vendor bounty intake) and pins the exact endpoint, POST /v1/vendor-postings, which separates it from sibling creation/read tools. It does not explicitly name which sibling to use for the follow-on steps, but the creation scope is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage context (a vendor submitting a new intake) and notes that funding is required and review only begins after funding settles, which hints at a multi-step flow. It never states when to choose this over fund_bounty or claim_bounty, nor any when-not conditions, so guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.