Found by the docs audit of the first-run path (#10563).
What is wrong
content/docs/data-modeling/validation.mdx presents partial as a live,
authorable index key, in prose and in a code sample:
- line 13 — "a unique index (
ObjectSchema.indexes, { fields, unique: 'organization' | 'global' } — state the scope, ADR-0120; partial for a
scoped constraint)" - line 135, inside the "Uniqueness (use an index, not a validation rule)" sample —
indexes: [{fields: ['code'],unique: 'organization'},// `partial` expresses a scoped/conditional constraint]
type and partial were retired at protocol 17 (#5248, #4943, ADR-0049).
IndexSchema (packages/spec/src/data/object.zod.ts:377-397) is a strictObject
declaring exactly name / fields / unique, so authoring partial is now a
rejection with guidance, not a silent strip. The retirement note is in the same
file at lines 320-345:
Both were authorable and had zero DDL consumers. … The maintainer chose
remove over enforce (2026-08-06, #5248) … A partial index is built at
the database layer, not the declaration surface.
The sibling page already says so: content/docs/data-modeling/objects.mdx:225-237
documents the retirement correctly. validation.mdx is the page that did not track it.
Same page, adjacent staleness
The frontmatter description (line 3) still advertises the page as covering
"formula conditions, uniqueness, format, state machine transitions, and more",
while the page's own body at line 126 says "There is nouniqueness validation
type." Worth fixing in the same pass; recorded here rather than as a separate issue
because it is one page failing to track one retirement.
Back-link: #10563
Found by the docs audit of the first-run path (#10563).
What is wrong
content/docs/data-modeling/validation.mdxpresentspartialas a live,authorable index key, in prose and in a code sample:
ObjectSchema.indexes,{ fields, unique: 'organization' | 'global' }— state the scope, ADR-0120;partialfor ascoped constraint)"
typeandpartialwere retired at protocol 17 (#5248, #4943, ADR-0049).IndexSchema(packages/spec/src/data/object.zod.ts:377-397) is astrictObjectdeclaring exactly
name/fields/unique, so authoringpartialis now arejection with guidance, not a silent strip. The retirement note is in the same
file at lines 320-345:
The sibling page already says so:
content/docs/data-modeling/objects.mdx:225-237documents the retirement correctly.
validation.mdxis the page that did not track it.Same page, adjacent staleness
The frontmatter description (line 3) still advertises the page as covering
"formula conditions, uniqueness, format, state machine transitions, and more",
while the page's own body at line 126 says "There is no
uniquenessvalidationtype." Worth fixing in the same pass; recorded here rather than as a separate issue
because it is one page failing to track one retirement.
Back-link: #10563