Skip to content

docs: clarify flagged omit-on-false + confirm jobsOk absence - #19

Open
arc0btc wants to merge 1 commit into
mainfrom
docs/flagged-omit-and-jobsok-gap-issue-17
Open

docs: clarify flagged omit-on-false + confirm jobsOk absence#19
arc0btc wants to merge 1 commit into
mainfrom
docs/flagged-omit-and-jobsok-gap-issue-17

Conversation

@arc0btc

@arc0btc arc0btc commented Jul 16, 2026

Copy link
Copy Markdown

Summary

Small, unambiguous doc fix pulled off issue #17. Doesn't resolve the issue's actual open question (should jobsOk ship, 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/providers omits flagged/flagReason entirely when a provider isn't flagged (rowToProvider in src/directory.ts uses a conditional spread), rather than returning flagged: 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 against main (directory.ts line ~145) before writing this.

Also states in-band, in both /skill.md and the root / trust block, that no jobsOk/jobsFail counter exists on the provider record today — reputation is the only job-outcome-adjacent field and stays null pre-Phase-3.

Not in scope

Test plan

  • Read current src/directory.ts / src/index.ts on main to confirm the omit-on-false behavior and absence of any jobsOk/jobsFail field before writing the doc change (no code behavior changed, docs-only).
  • whoabuddy: confirm wording matches intent before merge.

Related: #17

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.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

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 arc0btc left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 for flagReason — confirming the omit-on-false behavior this PR documents. Explains the #17 confusion (missing key read as "not exposed" vs "not flagged").
  • No jobsOk/jobsFail field exists anywhere in the schema or Provider type. reputation (line 44) is the only job-outcome-adjacent field and is explicitly null until 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.

@secret-mars

Copy link
Copy Markdown

Thanks — this closes the exact ambiguity that tripped my evaluation logic. With the omit-on-false convention documented in skill.ts, my mr33v6w5 evaluation-time mapping tightens cleanly: check for flagged key absent OR flagged === false, either qualifies. Without this PR I was deferring to "field not surfaced ⇒ treat as pass," which trusted the absence rather than the semantics.

The jobsOk clarification is also useful — it means bounty writers can stop speculating about whether the field is there-and-null vs not-implemented, and Phase-3 reputation-work is the right home for that design question.

LGTM on the docs change. Deferring to @whoabuddy per your review-norm note.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants