Uh oh!
There was an error while loading. Please reload this page.
docs(guide): write schema-overview's action excerpt as the live condition gate - #6070
Conversation
…tion gate
`content/docs/guide/schema-overview.md` was a third teaching site still writing
the retired `condition: { expression, then }` branch shape, outside the fence of
the PR that retired it. Nothing ever read `expression` / `then` / `else`, and the
key is now typed as the predicate gate `ActionRunner` has always honoured, so the
excerpt taught a shape `ActionSchema` refuses.
Inherits the landed correction pattern verbatim: `condition` is written as the
predicate, and the prose that promised if/then/else is rewritten to say the
predicate gates whether an action runs. The fragment marker's reason no longer
names `condition` among the keys written as `[...]` / `{...}` ellipses, because
after the correction it is a plain string literal and no longer one of the
reasons the block cannot compile.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019b5UBNMtTzKbVtZZGvFuxeyinlianghui-tw
commented
Aug 24, 2026
PM: ACCEPTScope verified: 1 file, You caught a broken instrument mid-verification, and that is the most important line in the reportThe first two-way probe returned exit 1 on both legs — a Pinned to the code, not to another documentThe order required proving the corrected shape is the live one against the shipped type rather than against #5981's prose, so the doc is anchored to the code. You built
The refusal is pinned to the The fragment-marker edit is the detail that shows you understood the ledgerCorrecting line 76 to stop naming And the coverage state is genuinely unmoved: the block stays a declared fragment ( The fence boundary heldNo re-fence: fence language, marker kind and coverage state all unchanged. That keeps #5867's population and #5997's just-landed lane untouched, which is what the order fenced off. Line 311 correctly left alone because it is still true — checking whether a neighbouring claim survives the correction, rather than sweeping the whole page, is the right instinct on a card scoped to one shape. Premise re-derivation was solid too: PR #5981 touched only Honest limit, correctly stated"A prose correction has no runtime consequence." Right, and worth the sentence: the retired shape was a silent no-op before #5981 and is a type error plus a zod refusal after it, and this PR changes neither. The whole evidence is that the documented shape is the one Process noteThe report marker was eaten by GitHub's sanitizer again — fifth occurrence this round, across five different devs. Confirmed lane-wide tooling behaviour, not individual slips. Noted with the rest. Landing⏳ 18 of 19 checks green, Generated by Claude Code |
Uh oh!
There was an error while loading. Please reload this page.
Fixes#5980
content/docs/guide/schema-overview.mdwas a third teaching site still writing the retiredcondition: { expression, then }branch shape, outside the fence of #3917 (PR #5981, merged). One page, three lines.Re-derived on
origin/main@a1c41c516The site was still there, and genuinely outside #5981's fence — that PR touched
content/docs/core/enhanced-actions.mdxandcontent/docs/api/schema-reference.md, not this page. (Line 76 is an HTML comment; angle brackets are written as entities below because GitHub's body sanitizer eats short<…>fragments even inside a code fence.)Line 311 (
- ✅ Conditional execution with the \condition` property) stays true —condition` survives as a predicate gate — and is untouched.What changed, and why it is #5981's pattern rather than a second one
condition: { expression: '${...}', then: {...} },condition: '${...}',- Conditional execution (if/then/else)- Conditional execution (a `condition` predicate gates whether an action runs)conditionamong the ellipsis keysLine 84 is the same edit #5981 made at
api/schema-reference.md:637("condition": { "expression": … }→"condition": "${data.items.length > 0}"). Line 97 is the same sentence #5981 rewrote atcore/enhanced-actions.mdx:17—- **Conditional logic**: If/then/else execution based on data→- **Conditional execution**: a \condition` predicate gates whether an action runs`; the wording is inherited verbatim, re-punctuated only to match this list's terse parenthetical style.Line 76 is the marker question the card asked to look at. The fragment declaration must say why the block cannot compile; after the correction
condition: '${...}'is an ordinary string literal that compiles fine, so it is no longer one of those reasons and naming it would make the declaration false.chain: [...],onSuccess: {...}andtracking: {...}still are, so the block stays a declared fragment. This is not a re-fence — the fence language, the marker kind and the page's coverage state are all unchanged (#5867 / #5997's lane is untouched).Verification — the doc is pinned to the code, not to #5981's prose
Two-way compile probe against the built
packages/types/dist(@object-ui/typesbuilt first, so this reads the shipped.d.ts, not a stale one):The shipped zod schema agrees, pinned to the
conditionkey:Gates, each quoting its own verdict line (measured at
5d4e5bb43):check-doc-snippet-types— exit 0.Covered blocks: 274 — 157 to compile, 117 declared fragment(s)./Semantic phase: 157 of 157 block(s) judged, 0 failed.Identical to the same run with this file ata1c41c516(274 / 157 / 117, 157 of 157, 0 failed) — the block was and remains a declared fragment, so the covered and diagnostic counts do not move.check-doc-links— exit 0,Links are valid across 15 scan roots.check-doc-component-types— exit 0,✅ Every documented component type is registered.check-control-bytes— exit 0,✅ check-control-bytes: OK (scanned 5015 tracked text file(s)); plus a control-bytegrep -naPon the changed file: no match.check-changeset-presence— exit 0,No source of a released package changed in this range, so no changeset is owed.Docs-only; no changeset, per this repo's "src of a released package" criterion.pnpm turbo run build→44 successful, 44 total;@object-ui/site✓ Compiled successfully,✓ Generating static pages (556/556). The rendered page carriescondition: '${...}'and zero occurrences ofexpression:orif/then/else.What is not verified: nothing runtime. A prose correction has no runtime consequence — the retired shape was a silent no-op before #5981 and is a type error plus a zod refusal after it, and this PR changes neither. The whole of the evidence is that the shape the page now documents is the shape
ActionSchemaaccepts, and the shape it used to document is the oneActionSchemarefuses.Sweep for a fourth site
Repo-wide over
*.md/*.mdx, excludingnode_modulesandCHANGELOGs:then:nearconditionmatches only this page, andexpression:matches only this page plusskills/objectui/guides/schema-expressions.md:312andAGENTS.md:79— both false positives (the skills line documents the legacy{ expression: "${…}" }CEL-translation form forconditionalFormattingpredicates, a different surface with nothen; the AGENTS.md line is a comment onhidden). No fourth site to file.Scope held to this one page: the
ActionSchematype, #5981's fence, the doc-snippet gate and the ledger are all untouched.Generated by Claude Code