Skip to content

docs(protocol): the actions.mdx outputSchema bullet says the cloud AI runtime validates the action result - #21303

Merged
objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-21288-actions-mdx-outputschema
Oct 2, 2026
Merged

objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-21288-actions-mdx-outputschema

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Refs #21288

Clause-②: no

What this does

One bullet in content/docs/protocol/objectui/actions.mdx (the AI Tool Exposure section, line 494 at 4e6dc233) said ai.outputSchema is "JSON Schema for the return value, enabling structured tool chaining". No reading on the parent card names a consumer that chains tools on it, and the 2026-08-29 cloud re-close recorded "no chaining consumer"; meanwhile the one thing the runtime does with the key was missing. The bullet now reads: JSON Schema for the return value. The cloud AI runtime validates the action's result against it and withholds a result that does not conform; a schema it cannot enforce is refused before the action runs.

Why a second PR, and why Refs

This is the cross-lane domain:devx surface of #21288, routed by triage 5944149289: the card's two skill positions land in the governed skills/** PR on claude/issue-21288-ai-skill-guardrails-outputschema-enforced (Tier H, draft until an authorized APPROVED review), and this docs line lands as an ordinary PR under the same claim. The card is closed by that PR. This one deliberately carries no closing keyword, so the duplicate-fix guard sees one claim on the issue, not two.

Verification (at 7e943517, worktree objectstack-issue-21288-docs)

  • node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands derived 40 commands from the merge base 4e6dc233 (1 path, +1/−1). Each ran with its exit code captured before any pipe; --ran answered: "✓ dispatch-gates --ran: 40 derived famil(ies) accounted for — 40 run, 0 NOT-MEASURED".
  • Exit 0 each: pnpm check:doc-authoring, pnpm check:doc-anchors, pnpm check:docs-single-h1, pnpm check:docs-redirects, pnpm check:docs-spec-enumerations, pnpm check:docs-audit-scope, pnpm check:docs-transcript-drift, pnpm check:corpus-claim-drift, pnpm check:role-word, pnpm check:nul-bytes, pnpm check:published-readme-links, pnpm check:skill-identifier-liveness, pnpm check:gitlink-declared, pnpm check:cross-package-test-inputs, pnpm check:driver-memory-census, pnpm check:react-page-adapter-contract, pnpm check:refd-timer-probe, pnpm check:vendor-version-stamps, pnpm check:watch-hint-literal; pnpm --filter @objectstack/spec run check:docs, check:empty-state, check:liveness, check:strictness-ledger, check:variant-docs, check:yaml-examples (after pnpm --filter @objectstack/spec build under the shared verify lock); and the direct node scripts/check-*.mjs rows (ci-filter-parity, closing-keyword-parity and its self-test, comment-mask-corpus, doc-frontmatter and self-test, doc-route-spelling advisory and self-test, docs-section-name and self-test, section-landing-index and self-test).
  • pnpm --filter @objectstack/lint run check:doc-formula-expressions and check:doc-security-posture: first run exit 3, PREREQUISITE NOT MET (@objectstack/formula / @objectstack/lint not built), nothing measured; after pnpm exec turbo run build --filter=@objectstack/formula --filter=@objectstack/lint under the lock, exit 0 each ("✅ 27 ObjectSchema.create example(s) in 227 marked block(s) across 249 prose file(s) in 2 root(s) carry an os validate-clean security posture").
  • pnpm --filter @objectstack/spec run check:skill-examples: first run exit 3 (packages/client-react/dist holds no declarations), nothing measured; after pnpm exec turbo run build --filter=@objectstack/client --filter=@objectstack/client-react under the lock, exit 0: "✅ 259 prose examples type-check across 3 surface(s)".
  • NOT MEASURED locally, CI's own: the Build Docs job, the whole-root pnpm lint, the type-check lanes and Test Core; the --ran footer names them as outside the derived total.

Changeset

skip-changeset. content/docs/** is in no published package's files[]: a scan of every package.json in the tree for a files[] entry naming skills or content/docs finds zero; the positive control @objectstack/spec lists dist, json-schema, liveness, prompts, llms.txt, README.md, src/**/*.zod.ts, CHANGELOG.md, api-surface, spec-changes.json. The docs site is built from this tree, not shipped in a tarball.

Acceptance notes


Generated by Claude Code

… runtime validates the action result

The bullet no longer claims "enabling structured tool chaining", which no
reading measured. It says what the runtime does with ai.outputSchema: the
action's result is validated against it and withheld when it does not conform,
and a schema the runtime cannot enforce is refused before the action runs.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FNKm1SmPpuJASnbjxWGtsJ
@github-actions github-actions Bot added size/xs documentation Improvements or additions to documentation labels Oct 2, 2026
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Oct 2, 2026
@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 2, 2026 03:07
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge October 2, 2026 03:07
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 2, 2026
Merged via the queue into main with commit 5f7d847 Oct 2, 2026
38 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-21288-actions-mdx-outputschema branch October 2, 2026 03:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants