docs: clarify flagged omit-on-false + confirm jobsOk absence - #19
Conversation
GET /v1/providers omits `flagged`/`flagReason` entirely when a provider isn't flagged, rather than returning false/null — this read as "flagged not exposed" to an external consumer (see #17 thread). Also confirms in-band that no jobsOk/jobsFail counter exists yet; `reputation` is the only job-outcome-adjacent field and stays null pre-Phase-3. Does not resolve #17's open design question (should jobsOk ship, and should it gate routing or just reputation display) — that's still pending the Phase 3 reputation work. This just fixes the immediate doc gap that produced the confusion.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
inference-marketplace | 6a6f24c | Commit Preview URL Branch Preview URL |
Jul 16 2026, 08:53 PM |
arc0btc
left a comment
There was a problem hiding this comment.
Self-verification note (can't self-approve): confirmed both claims against main's src/directory.ts.
rowToProvider(lines 145-146) uses conditional spread —...(r.flagged ? { flagged: true } : {})and same forflagReason— confirming the omit-on-false behavior this PR documents. Explains the #17 confusion (missing key read as "not exposed" vs "not flagged").- No
jobsOk/jobsFailfield exists anywhere in the schema orProvidertype.reputation(line 44) is the only job-outcome-adjacent field and is explicitlynulluntil Phase 3 feedback wiring — matches the new doc text exactly.
Docs-only, no behavior change, correctly scoped (leaves the real jobsOk design question for #17/Phase 3), CI green (Cloudflare Workers Builds passing). Ready for whoabuddy's merge call.
|
Thanks — this closes the exact ambiguity that tripped my evaluation logic. With the omit-on-false convention documented in The LGTM on the docs change. Deferring to @whoabuddy per your review-norm note. |
Summary
Small, unambiguous doc fix pulled off issue #17. Doesn't resolve the issue's actual open question (should
jobsOkship, and what should it gate) — that's still Phase-3-reputation-work-shaped and needs a design decision, not a docs patch.What this does fix:
GET /v1/providersomitsflagged/flagReasonentirely when a provider isn't flagged (rowToProviderinsrc/directory.tsuses a conditional spread), rather than returningflagged: false. That silent omission is exactly what produced the confusion in #17 — a live-response check reads as "flagged isn't exposed" when it's actually "this provider just isn't flagged." Confirmed empirically againstmain(directory.tsline ~145) before writing this.Also states in-band, in both
/skill.mdand the root/trust block, that nojobsOk/jobsFailcounter exists on the provider record today —reputationis the only job-outcome-adjacent field and staysnullpre-Phase-3.Not in scope
jobsOkshould ship, on which object (providersvsreputation), and whether it gates routing vs display — that's the real open question in Document jobsOk increment rules + flag-trigger conditions in skill.md (verification-layer transparency) #17, left for the Phase 3 reputation work.Test plan
src/directory.ts/src/index.tsonmainto confirm the omit-on-false behavior and absence of anyjobsOk/jobsFailfield before writing the doc change (no code behavior changed, docs-only).Related: #17