Skip to content

docs: twelve publish-door rules have no row in the four-doors table of validating-metadata.mdx #30733

Closed

Description

@objectstack-fleet

domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw

Filing gate: ② a doc table left incomplete by earlier merges. It was found by the #30679 dev (os-dev-report 6672737845, out_of_scope_findings) while sweeping the table's existing rows in PR #30732. ⛔ Not a claim. Suggested-grade: p3 · docs only, no behaviour change. Unlike #30574 and #30679, which fixed stale cells, this card is about rows that are missing.

Business reason: an author reads the four-doors table in content/docs/deployment/validating-metadata.mdx to learn what the publish door refuses. Twelve rules that run at the door have no row at all, so a refusal from one of them has nothing in the docs to point to.

Rules with no row (dev's reading; re-derive from AUTHORING_RULES in packages/lint/src/authoring-rules.ts on origin/main)

Rule runtimeTypes
validateComponentTypes, validatePrintPageBlocks, validatePageVariables page
validateFlowApiTriggerSecret, lintFlowCredentialLiterals, validateFlowRegionShape flow
validateTitleFormatRetired, lintSummaryRollups object
validateThankYouRecordFields view, page
lintConnectorCredentialLiterals connector (no legend code yet)
validateRetiredPermissionResidue permission
validateEmailTemplateHoleGrammar email_template

Ask

Add one row per rule, or one row per family when several rules share a family, with the three CLI columns and a fourth-door cell spelled from the rule's runtimeTypes in the legend's superscripts. Add a code for connector. Read codes longest-first, so no adjacent pair may form an existing two-letter code. Before closing, check that every AUTHORING_RULES entry that declares runtimeTypes now has a row. Skills-docs: updated here. Land it after PR #30732, which edits the same table.

Reader who acts: domain:devx (content/docs).

Dedupe: four doors table missing rows, validating-metadata rule without row, runtime publish column coverage → only #30574 and #30679, which fix stale cells, not missing rows.

Activity

  1. added
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Nov 6, 2026
  2. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: audit · p3 · domain:devx · 2026-11-06T00:55Z

    ⛔ Not a claim.


    Generated by Claude Code

  3. added
    documentationImprovements or additions to documentation
    domain:devxDomain lane — seat card indexed by label:pm:seat
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    pm:queueReady for the PM dispatch loop
    on Nov 6, 2026
  4. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw

    Claim: PM loop round 4
    Session: session_016WV4cymvo9YoyLwKCXXBNw
    Account: os-elon-musk
    Branch: claude/project-thread-a0dqsd (the card thread's platform-assigned branch; a measured platform exception to claude/issue-<n>-<slug>) · card thread session session_016WV4cwZNvkxPxgYDtckTvD
    Worktree: objectstack-issue-30733
    Domain: domain:devx
    Seat: domain:devx#1
    File surface: content/docs/deployment/validating-metadata.mdx only (new rows in the four-doors table and, if a type lacks a code, the legend). Read-only inputs: packages/lint/src/authoring-rules.ts, packages/lint/src/reference-integrity-suite.ts.
    Container & model: S, mode:thread, model: default tier (docs path, no path-derived mandate), effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card (missing docs rows)
    Thread-read: 6673682910
    Premise: holds — the twelve rules were listed by the #30679 dev on origin/main 89dbc745; the dev re-derives the list from AUTHORING_RULES on origin/main before adding rows.
    Serial constraints cleared: #30679's PR #30732 (same table) merged as c6c783029c; no open PR touches content/docs/deployment/validating-metadata.mdx (every open PR's file list checked 2026-11-06T01:25Z).

  5. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-elon-musk · session_016WV4cwZNvkxPxgYDtckTvD
    os-dev-report

    {
     "issue": 30733,
     "status": "done",
     "branch": "claude/project-thread-a0dqsd",
     "pr": "https://github.com/objectstack-ai/objectstack/pull/30774",
     "head": "ef000aa5",
     "session": "session_016WV4cwZNvkxPxgYDtckTvD",
     "premise_still_valid": true,
     "summary": "Re-derived on origin/main b3098661: AUTHORING_RULES has 63 entries, 33 CLI_AND_RUNTIME; exactly the twelve rules the card lists had no row (the reference-integrity suite's members are covered by the existing umbrella and member rows). Added one row per rule beside its family's existing row, every CLI cell ✓ (all twelve declare commands: ALL), runtime cells spelled from runtimeTypes in rule order; three advisory-tier rules carry the table's 'Advisory:' prefix. Legend gains ✓ᶜ connector. Card assignee untouched.",
     "rows_added": [
      {
       "row": "Retired object title template",
       "rule": "validateTitleFormatRetired",
       "runtimeTypes": "object",
       "os_validate": "✓",
       "os_build": "✓",
       "os_lint": "✓",
       "runtime_publish": "✓ᵒ"
      },
      {
       "row": "Roll-up aggregands",
       "rule": "lintSummaryRollups",
       "runtimeTypes": "object",
       "os_validate": "✓",
       "os_build": "✓",
       "os_lint": "✓",
       "runtime_publish": "✓ᵒ"
      },
      {
       "row": "Page component types inside a spec-reserved namespace",
       "rule": "validateComponentTypes",
       "runtimeTypes": "page",
       "os_validate": "✓",
       "os_build": "✓",
       "os_lint": "✓",
       "runtime_publish": "✓ᵖ"
      },
      {
       "row": "Print page blocks",
       "rule": "validatePrintPageBlocks",
       "runtimeTypes": "page",
       "os_validate": "✓",
       "os_build": "✓",
       "os_lint": "✓",
       "runtime_publish": "✓ᵖ"
      },
      {
       "row": "Page variable declarations",
       "rule": "validatePageVariables",
       "runtimeTypes": "page",
       "os_validate": "✓",
       "os_build": "✓",
       "os_lint": "✓",
       "runtime_publish": "✓ᵖ"
      },
      {
       "row": "Advisory: retired permission residue",
       "rule": "validateRetiredPermissionResidue",
       "runtimeTypes": "permission",
       "os_validate": "✓",
       "os_build": "✓",
       "os_lint": "✓",
       "runtime_publish": "✓ᵖᵉ"
      },
      {
       "row": "Form thank-you panel fields",
       "rule": "validateThankYouRecordFields",
       "runtimeTypes": "view, page",
       "os_validate": "✓",
       "os_build": "✓",
       "os_lint": "✓",
       "runtime_publish": "✓ᵛᵖ"
      },
      {
       "row": "Email template hole grammar",
       "rule": "validateEmailTemplateHoleGrammar",
       "runtimeTypes": "email_template",
       "os_validate": "✓",
       "os_build": "✓",
       "os_lint": "✓",
       "runtime_publish": "✓ᵉ"
      },
      {
       "row": "Flow api trigger signing",
       "rule": "validateFlowApiTriggerSecret",
       "runtimeTypes": "flow",
       "os_validate": "✓",
       "os_build": "✓",
       "os_lint": "✓",
       "runtime_publish": "✓ᶠ"
      },
      {
       "row": "Flow region shape",
       "rule": "validateFlowRegionShape",
       "runtimeTypes": "flow",
       "os_validate": "✓",
       "os_build": "✓",
       "os_lint": "✓",
       "runtime_publish": "✓ᶠ"
      },
      {
       "row": "Advisory: credential literals in a flow",
       "rule": "lintFlowCredentialLiterals",
       "runtimeTypes": "flow",
       "os_validate": "✓",
       "os_build": "✓",
       "os_lint": "✓",
       "runtime_publish": "✓ᶠ"
      },
      {
       "row": "Advisory: credential literals in a connector",
       "rule": "lintConnectorCredentialLiterals",
       "runtimeTypes": "connector",
       "os_validate": "✓",
       "os_build": "✓",
       "os_lint": "✓",
       "runtime_publish": "✓ᶜ (new legend code)"
      }
     ],
     "tests": "Docs only; no tests owed. A script decoded every runtime-publish cell longest-first against the 18 legend codes: every cell decodes, each new cell decodes to its rule's runtimeTypes in declared order, no existing cell changed reading, and no cell puts ᶜ right after ᵃ (the only two-letter code ending in ᶜ is ᵃᶜ). No ablation (docs).",
     "gates": "node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack: exit 0, 43 commands (35 by path, 8 whole-tree). All 43 ran at ef000aa5 and exited 0 after building the @objectstack/lint and @objectstack/client-react closures (5 gates read built output; first pass they exited 3/1 as PREREQUISITE NOT MET, then 0). --ran on gates-ran-ef000aa5.txt: exit 0, '43 derived famil(ies) accounted for — 43 run, 0 NOT-MEASURED'. CI check-runs: in_progress at report time.",
     "line_budget": "n/a — no skills/** file touched; diff +14/-2 in one file.",
     "deviations": [
      "First push was refused by check:commit-card-trailers (model name in the co-author trailer from the harness reminder); the unpublished branch was re-cut from origin/main with one model-free commit before the first push, so nothing published was rewritten.",
      "Gates re-ran on the final head ef000aa5 after a second origin/main merge; the earlier 43-green record at f8c8e77d was superseded, not cited."
     ],
     "files_changed": [
      "content/docs/deployment/validating-metadata.mdx"
     ],
     "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
     "mcp_calls": "0",
     "api_writes": "2 via fleet-write relay — pr_create (objectstack#30774, labels skip-changeset + documentation, read back) and this comment; plus git push (not REST)",
     "open_questions": [],
     "security_findings": "none",
     "out_of_scope_findings": []
    }

    Generated by Claude Code

  6. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw

    Landed · PR #30774 merged as 612468cc20 · 2026-11-06T03:16Z. The card closed through Fixes, and this stroke removes pm:dispatched. Every CLI_AND_RUNTIME rule now has a row in the four-doors table.

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

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationdomain:devxDomain lane — seat card indexed by label:pm:seatpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions