Skip to content

docs: the taught action:* node moves its executor keys into the properties bag — the spec strict face refuses flat actionType / target; land before objectui#11069 puts objectui validate on that face #11183

Description

@objectstack-fleet

Filed by the triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015, session_01AavokzJ5DndAwitDXvKy4U), answering the flat-vs-bag fork 5905925465 on objectui#10872 (the pm:retriage). ⛔ Not a claim, ⛔ not a dispatch. Graded here: documentation · priority:p2 · domain:skills · area:devpath · pm:queue.

The ruling this carries: A, the properties bag is the contract

  • Governing text. The spec's PageComponentSchema is .strict() (ADR-0089 D3a). It refuses a flat actionType / target on a component node as mis-layered, loudly. Read on objectstack origin/main 96e724475c: packages/spec/src/ui/page.test.ts, describe('ADR-0089 D3a — strict page component schema (loud mis-layered keys)').
  • Protocol first. When the spec and what we teach disagree, what we teach moves to the spec. ⛔ Not the reverse.
  • B is not an option. A flat channel for action:* in objectui's arms would make objectui validate accept what os validate refuses: a second dialect of the spec.
  • C is not an option. Landing objectui#11069 first would leave the governed instructions file teaching a node the validator refuses. Agents copy that example.
  • No behaviour is lost. The runtime reads both spellings through the SchemaRenderer hoist, so only the documents change.

Scope

Every taught action:* node moves its executor keys (actionType, target, and any other executor argument) into properties. Read on objectui origin/main 3ab51503b3; the nodes counted are "type": "action:button|icon|group|menu", and the claim re-counts them:

file governed action nodes flat executor lines seen
AGENTS.md (#4) yes 1 1
skills/objectui/SKILL.md yes 1 2
skills/objectui/guides/page-builder.md yes 1 2
skills/objectui/rules/protocol.md yes 1 2
content/docs/guide/quick-start.md no 1 2
content/docs/guide/record-edit-modes.md no 3 3
content/docs/guide/schema-rendering.md no 1 1
content/docs/guide/layout.md no 2 0 on a 4-line window (read in full at claim)
  • Governed. AGENTS.md and skills/** are governed surfaces (node scripts/check-governed-queue-guard.mjs --test names them). The PR stays draft until an authorized approval, and the claiming seat lands it (AGENTS.md「受管面」). The maintainer's approval is given on that PR; ⛔ no separate decision round.
  • Cross-lane. content/docs/guide/** is a domain:devx surface. It moves in the same PR, declared as a cross-lane surface in the claim: one edit, one example, ⛔ not split.
  • The pins move with the docs. PR objectui#11180's taught-node pins read content/docs/guide/quick-start.md: registered-types-validate-ratchet-10859.test.ts and held-public-block-arms-10872.test.ts, both ledgered readers in scripts/markdown-test-inputs.mjs. They move to the bag spelling in the same PR, and must then pass both faces: the tolerant one and StrictAnyComponentSchema.
  • The census is a gate. A re-grep for a flat executor key on any action:* example under content/docs/**, skills/**, AGENTS.md and README.md answers 0 after the change. Also run node scripts/markdown-test-inputs.mjs --audit and the root scripts/__tests__ suite (the batch-4 lesson on objectui#10872).

Order

  • This card lands before PR objectui#11069 (objectui#5250), which moves objectui validate onto the strict face. A pointer is on objectui#5250.
  • It does not wait on PR objectui#11180, which is ACCEPTed and landing; the pins it moves arrive with that merge.

Why p2. Nothing is refused today: the tolerant face accepts the flat node. But the governed instructions file's canonical example is a node the spec refuses, and it becomes a validator refusal the moment objectui#11069 lands. It takes objectui#5250's grade, which this card gates.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedocumentationImprovements or additions to documentationdomain:skillspriority:p2

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions