chore(preflight): read specs from gitignored schemas/ alias; drop CI preflight gate#200
Merged
Merged
Conversation
…gate Point preflight at the gitignored schemas/ directory (symlinks to a local pan.dev openapi-specs checkout) via an explicit MODELED_SPECS list, and remove the committed specs/ tree. schemas/ isn't in CI checkouts, so the preflight step is removed from ci.yml — it's now a local/pre-release check. Using the always-current upstream schemas is what prevents modeling drift like the ChannelStats field-name bug. - MODELED_SPECS lists the exact files we model (avoids -latest/unmodeled collisions from the full alias tree) - allowlist CustomerAppObject.tsg_id (latest mgmt spec loosened it; SDK keeps it required since every customer app carries a TSG) - friendly error if schemas/ is absent - CLAUDE.md/AGENTS.md updated to describe the new local-only flow
This was referenced Jul 9, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Removes the committed
specs/tree and points preflight at the gitignoredschemas/alias (symlinks to a local pan.devopenapi-specscheckout), per the decision to keep a single always-current spec source.Why
Modeling schemas from PRD prose instead of the real OpenAPI caused the
ChannelStatsfield-name bug (#198). Reading the authoritative upstream schemas directly is what prevents that class of error.Changes
preflight-schemas.tsreadsschemas/via an explicitMODELED_SPECSlist (the exact files we model). Explicit rather than globbed because the alias tree also holds-latestduplicates and unmodeled specs (most ofdlp/) whose components would collide and produce false drift. Friendly error ifschemas/is absent.ci.yml— removed thepreflightstep.schemas/is gitignored, so it can't run in a fresh CI checkout; preflight is now a local / pre-release check (as CLAUDE.md already framed "run before tagging a release").specs/deleted (it was never published —package.jsonfiles: ["dist"]).CustomerAppObject.tsg_id(the latest mgmt spec loosened it to optional; the SDK keeps it required since every customer app carries a TSG). Note: switching to the latest specs is what surfaced this..gitignoreignoresschemas/.MODELED_SPECSlist.Verification
preflightagainstschemas/is clean (0 unacknowledged drift, 236 matched).lint,typecheck, format, full Vitest green locally. The missing-schemas/path prints a clear setup message.Note
Preflight is no longer a per-PR CI gate — it's a local/pre-release check. Contributors without the
schemas/alias simply can't run it (clear error), which matches the "run before tagging a release" intent.🤖 Generated with Claude Code