You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(deployment): give the "gate" table its fourth column — the runtime publish surface (#7442) (#7458)
The table documented three CLI commands. Since #4463 P1 there is a fourth door:
`saveMetaItem` runs the same `AUTHORING_RULES` table on a `state: 'active'`
write, and `publishMetaItem` runs it on the draft→active promotion. A reader of
the old table concluded a Studio save passes no gate — false, and exactly the
mental model that leads someone to add a redundant check or skip a real one.
Each cell measured against the code rather than assumed. `runtimeGatedTypes()`
returns `['flow']` and six registry rules declare `surfaces: ['cli',
'runtime-publish']`, so the column is `✓ᶠ` (runs, flow writes only) on those
rows and `—` everywhere else; the Zod row is a plain `✓` because the per-type
`safeParse` runs on every write. Findings measured live through the real
dispatch path: `expression-invalid`, `approval-expression-invalid`,
`flow-trigger-unknown-event`, `flow-runas-unscoped`, `filter-empty-combinator`,
`flow-node-write-unknown-field` refuse; `flow-template-unknown-field`,
`flow-draft-status-ambiguous`, `approval-expression-no-empty-policy` ride back
as advisories. An `object` / `view` / `dashboard` write runs zero rules.
Four rows added so the column can be honest: two runtime-gated rules had no row
at all (empty filter combinators #5330, the flow half of the reference-integrity
suite), flow trigger readiness moved out of the "Advisory:" row it had outgrown
(#5762 promoted it to gating), and the runtime-only platform-schedule
organization refusal (#6285) shows the column is not a pure subset in the other
direction either. Dropped `visibility aliases` from the advisory row —
`visibility-alias-deprecated` was retired by #6318.
Also documents what #7435 landed: advisories reach the author on the save
response, not only a server log. Closing prose now says what the fourth door
does and does not guarantee — the wiring test requires every runtime-publish
rule to run on `os build` too, so the door narrows types, never verdicts.
Adjacent citation drift fixed in the same pass: `AUTHORING_RULES` lives in
`packages/lint/src/authoring-rules.ts`, not `packages/cli/src/lint/`.
Fixes#7442
Claude-Session: https://claude.ai/code/session_01XAdrnFmbvpLodAR88aoagw
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
0 commit comments