price_unstated

The running jobjob_7Hq2 · delivered · document.fr-CA.pdf · $49.00 charged

The tool description omits the price or when it's charged.

FixExit
Keep the price sentence in it.1

Owned by Your own Service: the page that explains what this gate holds.

No Service file fails it: services.dev writes the price sentence, with when the job is charged, after every tool description. The gate is a backstop for that sentence. Below, a Service with a description of its own, and the tool description an agent reads, the sentence after it.

services/translation.ts
import { Service } from 'services.dev'

export default Service({
  name: 'Translation',
  description: 'A document, translated.',
  input: { document: 'file', to: 'language: a BCP 47 tag, such as fr-CA' },
  output: { document: 'file' },
  price: 49,
})
the description, then the price sentence and who delivers
A document, translated. $49 per job, within 48 hours, charged on delivery. AI delivers every job.
The whole document check --json prints
npx services.dev check --json
{
  "ai": {
    "cents_per_call": 42,
    "simulated": true
  },
  "mcp": {
    "tools": 13,
    "tokens": 4476,
    "sandbox": 9,
    "budget": 8000
  },
  "services": [
    {
      "path": "services/translation.ts",
      "lines": 5,
      "steps": "draft · ai → review · ai · adversarial",
      "ok": true,
      "price": "$49 per job, within 48 hours, charged on delivery.",
      "who": "AI delivers every job.",
      "agent": {