review_after_attest
A person attests work no review has passed: the review runs after the signature.
| Fix | Fails in | Exit |
|---|---|---|
| Move the review ahead of the step that signs, so the person signs work the review has already passed. | services/translation.ts | 1 |
Owned by Review steps: the page that explains what this gate holds.
✗ A person attests work no review has passed: the review runs after the signature. Move harden ahead of sign, so the sworn translator signs work the review has already passed.
https://services.dev/docs/reference/check/review_after_attest
✗ 1 to fiximport { Service } from 'services.dev'
export default Service({
name: 'Translation',
input: { document: 'file', to: 'language: a BCP 47 tag, such as fr-CA' },
output: { document: 'file' },
deliver: {
translate: 'ai',
sign: { by: 'sworn-translator', stamp: true },
harden: { review: 'adversarial', lenses: ['meaning', 'terms'] },
},
price: 49,
})diff --git a/services/translation.ts b/services/translation.ts
index 02e57aa..5941556 100644
--- a/services/translation.ts
+++ b/services/translation.ts
@@ -6,8 +6,8 @@ export default Service({
output: { document: 'file' },
deliver: {
translate: 'ai',
- sign: { by: 'sworn-translator', stamp: true },
harden: { review: 'adversarial', lenses: ['meaning', 'terms'] },
+ sign: { by: 'sworn-translator', stamp: true },
},
price: 49,
})✓ ready to sell · 1 Service · it keeps at least 80% of every job{
"code": "review_after_attest",
"reason": "A person attests work no review has passed: the review runs after the signature.",
"next": "Move harden ahead of sign, so the sworn translator signs work the review has already passed.",
"doc_url": "https://services.dev/docs/reference/check/review_after_attest"
}The whole document check --json prints
{
"ai": {
"cents_per_call": 42,
"simulated": true
},
"mcp": {
"tools": 13,
"tokens": 4491,
"sandbox": 9,
"budget": 8000
},
"services": [
{
"path": "services/translation.ts",
"lines": 9,
"steps": "translate · ai → sign · sworn translator · stamped → harden · ai · adversarial · 2 lenses",
"ok": false,
"price": "$49 per job, within 48 hours, charged on delivery.",
"who": "A sworn translator signs at sign, stamped.",
"agent": {