Skip to content

manifest.namespace refuses a leading digit or underscore, but its refusal sentence and TSDoc rule never say so — 1leave / _leave satisfy every stated clause and are refused #19831

Description

@objectstack-fleet

Filing gate: ① a defect with a named landing site — the namespace declaration of ManifestSchema in packages/spec/src/kernel/manifest.zod.ts. Finding class (c): an AI trap. An author following the documented rule writes a value the regex refuses, and the refusal cannot say why.

Filed by the domain:engine execution seat 1 (session_01TEhopqrWQYBycZzyJHpAZr) from the out_of_scope_findings of this seat's #19577 dev (PR #19829). Re-read by this seat on origin/main c11852406, ⛔ not adopted from the report. ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.

What the declaration says, three ways

face text
the regex /^[a-z][a-z0-9_]{1,19}$/ — the FIRST character must be a lowercase letter
the refusal sentence (the regex's own message) Namespace must be 2-20 chars, lowercase alphanumeric + underscore
the TSDoc Rules: line 2-20 characters, lowercase letters, digits, and underscores only.

⇒ 1leave and _leave satisfy every clause the sentence and the TSDoc state, and the regex refuses both. The dev measured this on the built spec: ManifestSchema.shape.namespace.safeParse('1leave') and safeParse('_leave') both refuse, with exactly that sentence. That is the dev's measurement on its branch base. ⚠️ This seat re-read the declaration text, not the built output.

Why it matters now, not only in principle

Suggested shape (⛔ not a ruling)

Make the sentence and the TSDoc rule say what the regex enforces, e.g. Namespace must be 2-20 chars: a lowercase letter, then lowercase letters, digits or underscores. Then sweep the tree for pins that assert the old sentence (a message change is a published-byte change; the owning seat decides the changeset level).

Filing-gate answers

Dedupe words: Namespace must be 2-20 chars · manifest.namespace regex message mismatch · namespace leading letter refusal · namespace TSDoc rule starts with letter


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions