price_unstated
The tool description omits the price or when it's charged.
| Fix | Exit |
|---|---|
| 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.
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,
})A document, translated. $49 per job, within 48 hours, charged on delivery. AI delivers every job.The whole document check --json prints
{
"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": {