Repository navigation
Commit 612468c
docs(deployment): give the twelve publish-door rules with no row their four-doors rows (#30774)
<!-- claude-projects-attribution: {"github_login":"os-elon-musk"} -->
_Requested by **Elon** · [project
thread](https://claude.ai/code/project/chan_01WedDzV26nniwxv7jC88B9D?thread=cmsg_01WedDzV26nniwxv7jC88B9D8fcd5rdwaRD11xXZFTsP7M)_
domain:devx#1 · os-elon-musk · session_016WV4cwZNvkxPxgYDtckTvD
Fixes #30733
Clause-②: no
Metadata-protocol: none
Skills-docs: updated here
## 维护者速读
- **改了什么**:`validating-metadata.mdx` 的「一道闸、四道门」表格补上 12
条在运行时发布门运行、却没有任何一行的规则(12 行);图例为 `connector` 新增代码 `ᶜ`。
- **为什么改**:作者靠这张表查发布门会拒收什么;这 12 条规则拒收时文档里没有一行可对照。
- **风险与回滚**:纯文档,一个文件,无行为改动;回滚即 revert。
- **先看**:① 表格新增的 12 行(页面三行在 SDUI component props 之后,流程四行在 Flow trigger
readiness 之后);② 表下图例新增的 `✓ᶜ` `connector`。
- **两分钟验证**:对照 `packages/lint/src/authoring-rules.ts` 里任一新行规则的
`runtimeTypes`,看该行最后一格的上标是否按同序拼出。
- **需要你做的**:无,席位落地。
## What changes
One file, `content/docs/deployment/validating-metadata.mdx`: twelve new
rows in the four-doors table and one new legend code.
Re-derivation on `origin/main` (`b3098661`, this branch's base):
`AUTHORING_RULES` holds 63 entries, 33 with `surfaces: CLI_AND_RUNTIME`.
Every one of those 33 now has a row; before this PR exactly the twelve
the card lists had none. The reference-integrity suite's 33 members are
all covered by the existing umbrella and member rows (unchanged). All
twelve declare `commands: ALL`, so the three CLI cells are `✓ ✓ ✓` on
every new row.
| New row | Rule | `runtimeTypes` | `os validate` | `os build` | `os
lint` | runtime publish |
|:--|:--|:--|:--|:--|:--|:--|
| Retired object title template | `validateTitleFormatRetired` |
`object` | ✓ | ✓ | ✓ | `✓ᵒ` |
| Roll-up aggregands | `lintSummaryRollups` | `object` | ✓ | ✓ | ✓ |
`✓ᵒ` |
| Page component types inside a spec-reserved namespace |
`validateComponentTypes` | `page` | ✓ | ✓ | ✓ | `✓ᵖ` |
| Print page blocks | `validatePrintPageBlocks` | `page` | ✓ | ✓ | ✓ |
`✓ᵖ` |
| Page variable declarations | `validatePageVariables` | `page` | ✓ | ✓
| ✓ | `✓ᵖ` |
| Advisory: retired permission residue |
`validateRetiredPermissionResidue` | `permission` | ✓ | ✓ | ✓ | `✓ᵖᵉ` |
| Form thank-you panel fields | `validateThankYouRecordFields` | `view,
page` | ✓ | ✓ | ✓ | `✓ᵛᵖ` |
| Email template hole grammar | `validateEmailTemplateHoleGrammar` |
`email_template` | ✓ | ✓ | ✓ | `✓ᵉ` |
| Flow `api` trigger signing | `validateFlowApiTriggerSecret` | `flow` |
✓ | ✓ | ✓ | `✓ᶠ` |
| Flow region shape | `validateFlowRegionShape` | `flow` | ✓ | ✓ | ✓ |
`✓ᶠ` |
| Advisory: credential literals in a flow | `lintFlowCredentialLiterals`
| `flow` | ✓ | ✓ | ✓ | `✓ᶠ` |
| Advisory: credential literals in a connector |
`lintConnectorCredentialLiterals` | `connector` | ✓ | ✓ | ✓ | `✓ᶜ` |
Each rule has its own row, placed beside the existing row of its family
(object rows after the inert-declarations row, page rows after SDUI
component props, the thank-you row after public-form file fields, hole
grammar after hole placements, flow rows after flow trigger readiness,
permission residue after membership keys). Rules that share a cell were
not merged into one row, because they are different families; the
table's rows are families. The three `tier: 'advisory'` rules carry the
table's own `Advisory:` prefix.
Legend: `✓ᶜ` `connector`, the bare `ᶜ`, said in the sentence that
explains the two-letter codes.
## Acceptance notes
- **Pair check.** A script decoded every `runtime publish` cell
longest-first against the 18 codes. Every cell decodes, every new cell
decodes to its rule's `runtimeTypes` in declared order, and no existing
cell changed its reading. The only two-letter code that ends in `ᶜ` is
`ᵃᶜ`, and no cell puts `ᶜ` right after `ᵃ`.
- **Row text.** Each new row names the rule id(s) it reports under and
the origin issue or ADR read from the rule's source file or the release
notes. `lintSummaryRollups` names no origin issue in its source, so its
row cites only its rule id `rollup/non-numeric-aggregand`.
## Verification
`node scripts/pm/dispatch-gates.mjs --commands --repo
objectstack-ai/objectstack` (exit 0) derived 43 commands for this one
path (35 by path, 8 whole-tree). Docs only, no package files, so
`skip-changeset`; nothing to ablate.
All 43 ran at `ef000aa5` (the final head, on `origin/main` `b3098661`)
and every one exited 0, after building the `@objectstack/lint` and
`@objectstack/client-react` closures, which five of them read as built
output. `dispatch-gates.mjs --ran` on that record: exit 0, "43 derived
famil(ies) accounted for — 43 run, 0 NOT-MEASURED".
<details><summary>43 gates, exit codes at ef000aa</summary>
```text
node scripts/check-adr-links.mjs :: exit 0
node scripts/check-adr-links.mjs --self-test :: exit 0
node scripts/check-closing-keyword-parity.mjs :: exit 0
node scripts/check-closing-keyword-parity.mjs --self-test :: exit 0
node scripts/check-comment-mask-corpus.mjs :: exit 0
node scripts/check-doc-route-spelling.mjs --advisory :: exit 0
node scripts/check-doc-route-spelling.mjs --self-test :: exit 0
node scripts/check-docs-section-name.mjs :: exit 0
node scripts/check-docs-section-name.mjs --self-test :: exit 0
node scripts/check-section-landing-index.mjs :: exit 0
node scripts/check-section-landing-index.mjs --self-test :: exit 0
node scripts/ci/plan-test-core-shards.mjs --self-test :: exit 0
pnpm --filter @objectstack/lint run check:doc-formula-expressions :: exit 0
pnpm --filter @objectstack/lint run check:doc-security-posture :: exit 0
pnpm --filter @objectstack/spec run check:docs :: exit 0
pnpm --filter @objectstack/spec run check:empty-state :: exit 0
pnpm --filter @objectstack/spec run check:liveness :: exit 0
pnpm --filter @objectstack/spec run check:skill-examples :: exit 0
pnpm --filter @objectstack/spec run check:strictness-ledger :: exit 0
pnpm --filter @objectstack/spec run check:variant-docs :: exit 0
pnpm --filter @objectstack/spec run check:yaml-examples :: exit 0
pnpm check:ci-filter-parity :: exit 0
pnpm check:closed-ceremony-text :: exit 0
pnpm check:corpus-claim-drift :: exit 0
pnpm check:cross-package-test-inputs :: exit 0
pnpm check:doc-anchors :: exit 0
pnpm check:doc-authoring :: exit 0
pnpm check:doc-frontmatter :: exit 0
pnpm check:docs-audit-scope :: exit 0
pnpm check:docs-redirects :: exit 0
pnpm check:docs-single-h1 :: exit 0
pnpm check:docs-spec-enumerations :: exit 0
pnpm check:docs-transcript-drift :: exit 0
pnpm check:driver-memory-census :: exit 0
pnpm check:gitlink-declared :: exit 0
pnpm check:nul-bytes :: exit 0
pnpm check:published-readme-links :: exit 0
pnpm check:react-page-adapter-contract :: exit 0
pnpm check:refd-timer-probe :: exit 0
pnpm check:role-word :: exit 0
pnpm check:skill-identifier-liveness :: exit 0
pnpm check:vendor-version-stamps :: exit 0
pnpm check:watch-hint-literal :: exit 0
```
</details>
---
_Generated by [Claude
Code](https://claude.ai/code/session_016WV4cwZNvkxPxgYDtckTvD)_
Co-authored-by: Claude <noreply@anthropic.com>1 parent 802c98c commit 612468c
1 file changed
Lines changed: 14 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
481 | 481 | | |
482 | 482 | | |
483 | 483 | | |
| 484 | + | |
| 485 | + | |
484 | 486 | | |
485 | 487 | | |
486 | 488 | | |
| |||
497 | 499 | | |
498 | 500 | | |
499 | 501 | | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
500 | 505 | | |
501 | 506 | | |
502 | 507 | | |
| |||
506 | 511 | | |
507 | 512 | | |
508 | 513 | | |
| 514 | + | |
509 | 515 | | |
510 | 516 | | |
511 | 517 | | |
| 518 | + | |
512 | 519 | | |
513 | 520 | | |
| 521 | + | |
514 | 522 | | |
515 | 523 | | |
516 | 524 | | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
517 | 529 | | |
518 | 530 | | |
519 | 531 | | |
| |||
529 | 541 | | |
530 | 542 | | |
531 | 543 | | |
532 | | - | |
| 544 | + | |
533 | 545 | | |
534 | 546 | | |
535 | | - | |
| 547 | + | |
536 | 548 | | |
537 | 549 | | |
538 | 550 | | |
| |||
0 commit comments