Skip to content

feat(spec)!: remove the dead static capabilities-descriptor cluster - #3605

Merged
os-zhuang merged 2 commits into
mainfrom
chore/prune-dead-capabilities-descriptor
Jul 27, 2026
Merged

feat(spec)!: remove the dead static capabilities-descriptor cluster#3605
os-zhuang merged 2 commits into
mainfrom
chore/prune-dead-capabilities-descriptor

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Same ADR-0056 D8 family as the AuditConfig prune (#3593), surfaced by its flagged follow-up (the auditLogging dead boolean led here). Umbrella #1878.

What this is

The "RUNTIME CAPABILITIES PROTOCOL" tail of stack.zod.ts (214 lines): ObjectQLCapabilitiesSchema / ObjectUICapabilitiesSchema / KernelCapabilitiesSchema / ObjectStackCapabilitiesSchema / deprecated ObjectOSCapabilitiesSchema alias + all five types — a static fixed-boolean self-portrait of the platform.

Verified zero consumers (framework source, objectui apart from bare re-exports, cloud, downstream-contract): never authorable (defineStack has no such key), never registered, never fed any endpoint.

Worse than dead — it lied. fieldLevelSecurity / rowLevelSecurity / auditLogging / backgroundJobs all default(false) while every one is live and enforced; odataApi advertised an API that has never existed. An AI reading this schema builds a systematically wrong model of the platform — the exact failure mode the metadata protocol exists to prevent.

The live surfaces (declared === enforced): GET /api/v1/discovery builds its capabilities record dynamically — #3298 advertises transactionalBatch only when the route is mounted AND the engine supports transactions; /.well-known has WellKnownCapabilitiesSchema (spec/api); drivers have Driver/DatasourceCapabilities (spec/data). The changeset carries the full dead-boolean → live-discovery migration table.

Changes

  • Delete the cluster + four dead stack.test.ts describe blocks + src/index.ts explicit re-exports + two now-orphan imports (ClusterCapabilityConfigSchema / FeatureFlagSchema — both modules untouched; ApiEndpointSchema stays, consumed by the stack apis key).
  • api-surface: 10 exports, pure removal. No manifest keys existed; no doc page was generated for them.
  • Companion objectui PR drops the @object-ui/types re-exports (must land before objectui's next spec bump): objectstack-ai/objectui#chore/drop-capabilities-reexports.

Verification

6716 spec tests green (incl. protocol-map link gate) · tsc --noEmit clean · check:docs / check:api-surface / check:skill-refs / check:react-blocks in sync · downstream-contract typecheck clean.

Refs #1878, #3593.

🤖 Generated with Claude Code

…1878 family)

The "RUNTIME CAPABILITIES PROTOCOL" tail of stack.zod.ts (ObjectQL/ObjectUI/
Kernel/ObjectStack CapabilitiesSchema + the deprecated ObjectOS alias + all
five types, 214 lines) had zero consumers repo-wide: never authorable
(defineStack has no such key), never registered, never fed any endpoint.
Worse, the fixed-boolean self-portrait lied — fieldLevelSecurity/
rowLevelSecurity/auditLogging/backgroundJobs all default(false) while live
and enforced, and odataApi never existed. Real capability discovery is
dynamic: GET /api/v1/discovery (declared===enforced, #3298) + the
/.well-known WellKnownCapabilitiesSchema contract + driver-level
Driver/DatasourceCapabilities.

- Delete the cluster + the four dead stack.test.ts describe blocks + the
  src/index.ts explicit re-exports + two now-orphan imports
  (ClusterCapabilityConfigSchema/FeatureFlagSchema — both modules stay,
  ApiEndpointSchema remains consumed by the stack `apis` key).
- api-surface: 10 exports, pure removal. No manifest keys existed; no doc
  page was generated for them.
- Changeset (minor) carries the dead-boolean → live-discovery migration
  table. objectui re-exports dropped in the companion PR.

Verified: 6716 spec tests green, tsc clean, check:docs/api-surface/
skill-refs/react-blocks in sync, downstream-contract typecheck clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Jul 27, 2026 9:28am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation tests tooling size/l labels Jul 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/spec.

104 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/ai/agents.mdx (via @objectstack/spec)
  • content/docs/ai/skills-reference.mdx (via @objectstack/spec)
  • content/docs/ai/skills.mdx (via @objectstack/spec)
  • content/docs/api/client-sdk.mdx (via @objectstack/spec)
  • content/docs/api/environment-routing.mdx (via @objectstack/spec)
  • content/docs/api/error-catalog.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-client.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-server.mdx (via @objectstack/spec)
  • content/docs/api/index.mdx (via @objectstack/spec)
  • content/docs/automation/approvals.mdx (via packages/spec)
  • content/docs/automation/flows.mdx (via @objectstack/spec)
  • content/docs/automation/hook-bodies.mdx (via packages/spec)
  • content/docs/automation/hooks.mdx (via @objectstack/spec)
  • content/docs/automation/index.mdx (via @objectstack/spec)
  • content/docs/automation/webhooks.mdx (via @objectstack/spec)
  • content/docs/automation/workflows.mdx (via @objectstack/spec)
  • content/docs/concepts/architecture.mdx (via @objectstack/spec)
  • content/docs/concepts/design-principles.mdx (via packages/spec)
  • content/docs/concepts/index.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-driven.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-lifecycle.mdx (via packages/spec)
  • content/docs/concepts/north-star.mdx (via packages/spec)
  • content/docs/data-modeling/analytics.mdx (via @objectstack/spec)
  • content/docs/data-modeling/drivers.mdx (via @objectstack/spec)
  • content/docs/data-modeling/external-datasources.mdx (via @objectstack/spec)
  • content/docs/data-modeling/field-types.mdx (via @objectstack/spec)
  • content/docs/data-modeling/fields.mdx (via @objectstack/spec)
  • content/docs/data-modeling/formulas.mdx (via @objectstack/spec)
  • content/docs/data-modeling/index.mdx (via @objectstack/spec)
  • content/docs/data-modeling/objects.mdx (via @objectstack/spec)
  • content/docs/data-modeling/queries.mdx (via @objectstack/spec)
  • content/docs/data-modeling/schema-design.mdx (via @objectstack/spec)
  • content/docs/data-modeling/seed-data.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation-rules.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation.mdx (via @objectstack/spec)
  • content/docs/deployment/cli.mdx (via @objectstack/spec)
  • content/docs/deployment/troubleshooting.mdx (via @objectstack/spec)
  • content/docs/deployment/validating-metadata.mdx (via @objectstack/spec)
  • content/docs/getting-started/build-with-claude-code.mdx (via @objectstack/spec)
  • content/docs/getting-started/common-patterns.mdx (via @objectstack/spec)
  • content/docs/getting-started/examples.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-reference.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-start.mdx (via @objectstack/spec)
  • content/docs/getting-started/your-first-project.mdx (via @objectstack/spec)
  • content/docs/kernel/cluster.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/auth-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/cache-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/data-engine.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/index.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/metadata-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/storage-service.mdx (via packages/spec)
  • content/docs/kernel/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/email-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/queue-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sharing-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sms-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/storage-service.mdx (via packages/spec)
  • content/docs/kernel/services-checklist.mdx (via @objectstack/spec)
  • content/docs/permissions/authorization.mdx (via @objectstack/spec)
  • content/docs/permissions/permission-sets.mdx (via @objectstack/spec)
  • content/docs/permissions/permissions-matrix.mdx (via @objectstack/spec)
  • content/docs/permissions/positions.mdx (via @objectstack/spec)
  • content/docs/permissions/rls.mdx (via @objectstack/spec)
  • content/docs/permissions/sharing-rules.mdx (via @objectstack/spec)
  • content/docs/plugins/adding-a-metadata-type.mdx (via @objectstack/spec)
  • content/docs/plugins/development.mdx (via @objectstack/spec)
  • content/docs/plugins/index.mdx (via @objectstack/spec)
  • content/docs/plugins/packages.mdx (via @objectstack/spec)
  • content/docs/protocol/backward-compatibility.mdx (via @objectstack/spec)
  • content/docs/protocol/diagram.mdx (via packages/spec)
  • content/docs/protocol/kernel/config-resolution.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/i18n-standard.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/index.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/lifecycle.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/plugin-spec.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/runtime-capabilities.mdx (via @objectstack/spec)
  • content/docs/protocol/knowledge.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/query-syntax.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/schema.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/security.mdx (via packages/spec)
  • content/docs/protocol/objectql/state-machine.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/actions.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/concept.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/layout-dsl.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/record-alert.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/widget-contract.mdx (via @objectstack/spec)
  • content/docs/releases/implementation-status.mdx (via @objectstack/spec)
  • content/docs/releases/index.mdx (via @objectstack/spec)
  • content/docs/releases/v12.mdx (via @objectstack/spec)
  • content/docs/releases/v13.mdx (via @objectstack/spec)
  • content/docs/releases/v16.mdx (via @objectstack/spec)
  • content/docs/releases/v9.mdx (via @objectstack/spec)
  • content/docs/ui/actions.mdx (via @objectstack/spec)
  • content/docs/ui/create-vs-edit-form.mdx (via @objectstack/spec)
  • content/docs/ui/dashboards.mdx (via @objectstack/spec)
  • content/docs/ui/forms.mdx (via @objectstack/spec)
  • content/docs/ui/index.mdx (via @objectstack/spec)
  • content/docs/ui/public-data-collection.mdx (via @objectstack/spec)
  • content/docs/ui/setup-app.mdx (via @objectstack/spec)
  • content/docs/ui/translations.mdx (via @objectstack/spec)
  • content/docs/ui/views.mdx (via @objectstack/spec)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

… the feature-flags example

The platform skill's os:check example imported ObjectStackCapabilities to
type a system.features array — the descriptor this PR removes (and which no
endpoint ever served). The example now shows only the live part
(FeatureFlag.create compile-checked values) and the prose points capability
discovery at GET /api/v1/discovery. Caught by check:skill-examples — my
repo-wide grep excluded *.md and missed TS blocks inside skill docs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@os-zhuang
os-zhuang merged commit b0e78a8 into main Jul 27, 2026
17 checks passed
@os-zhuang
os-zhuang deleted the chore/prune-dead-capabilities-descriptor branch July 27, 2026 09:42
os-zhuang added a commit that referenced this pull request Jul 27, 2026
…ture.zod) (#3630)

* feat(spec)!: remove the orphaned FeatureFlagSchema module (kernel/feature.zod)

Follow-through of #3605: kernel/feature.zod.ts (FeatureStrategy,
FeatureFlagSchema, the FeatureFlag factory + types) had zero runtime
consumers, and its only protocol home — the static
ObjectStackCapabilities.system.features descriptor — was itself removed as
dead in #3605. Not authorable (defineStack has no features key), not
registered, not read by any engine. Live toggles are the feature_flags
settings manifest (ADR-0007, OS_FEATURE_FLAGS_*) and the
PUBLIC_AUTH_FEATURES registry for auth gates.

- Delete feature.zod.ts + feature.test.ts; kernel/index export dropped with
  a removal note; manifest keys kernel/FeatureFlag + kernel/FeatureStrategy
  dropped; PROTOCOL_MAP row dropped; SKILL_MAP entry dropped (skill refs
  regenerated).
- Docs: references/kernel/feature.mdx removed by regen; the hand-written
  quick-reference row removed; the platform skill's Feature Flags section
  rewritten to point at the settings surface; public-auth-features.ts
  "not to be confused" comment updated.
- api-surface: 4 exports, pure removal. Changeset (minor) carries the
  removed-shape → settings-manifest migration table.

Verified: 6663 spec tests green, tsc clean, check:docs/api-surface/
skill-refs/skill-docs/react-blocks/skill-examples all in sync,
downstream-contract typecheck clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* test(dogfood): drop the removed feature.zod expression surface from the ADR-0058 ledger

The expression-conformance ledger's cel-formula entry covered
kernel/feature.zod.ts:expression — the surface vanished with the orphaned
FeatureFlagSchema module, so the ADR-0060 checkLedger STALE-covers gate
correctly failed Dogfood shard 2/2. Caught by the ledger, not by symbol
grep: the entry references the file PATH, not the FeatureFlag symbol.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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/l tests tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant