surface_drift
A surface serves a call with no row, or lacks a live row.
| Fix | Fails in | Exit |
|---|---|---|
| Add the row, or render it. | the brand: check prints it under every Service | 1 |
Owned by The contract: the page that explains what this gate holds.
✗ A surface serves a call with no row, or lacks a live row. Add the row, or render it. cli listen is service.order's command, and the CLI has none.
https://services.dev/docs/reference/check/surface_drift
✗ 1 to fiximport { Service } from 'services.dev'
export default Service({
name: 'Transcript',
input: { recording: 'file', to: 'language: a BCP 47 tag, such as fr-CA' },
output: { transcript: 'file' },
price: 19,
})diff --git a/services/listen.ts b/services/transcript.ts
similarity index 100%
rename from services/listen.ts
rename to services/transcript.ts✓ ready to sell · 1 Service · AI delivers it alone · it keeps at least 80% of every job{
"code": "surface_drift",
"reason": "A surface serves a call with no row, or lacks a live row.",
"next": "Add the row, or render it. cli listen is service.order's command, and the CLI has none.",
"doc_url": "https://services.dev/docs/reference/check/surface_drift"
}The whole document check --json prints
{
"ai": {
"cents_per_call": 42,
"simulated": true
},
"mcp": {
"tools": 13,
"tokens": 4487,
"sandbox": 9,
"budget": 8000
},
"services": [
{
"path": "services/listen.ts",
"lines": 4,
"steps": "draft · ai → review · ai · adversarial",
"ok": false,
"price": "$19 per job, within 48 hours, charged on delivery.",
"who": "AI delivers every job.",
"agent": {