schema-compatibility is the third check in the same Interface Integrity job, after the two CLI interface gates. It also rejected every published parameter type change outright. Because the earlier gates failed first and `set -e` stopped the step from ever running, this one never surfaced in CI, so the previous exemption only covered two thirds of the problem. checkParameterCompatibility now consults a precise allowlist: the tool path, parameter name and both type values must match exactly, making it direction-sensitive by construction, and it applies only when nothing else the gate checks about the parameter moved (default, interface_default, format, property, interface_type, required, cli_required, required_when, enum). The type check moved to the end of the function so the carve-out can see those findings; ordering is unobservable because the result is sorted. The only entry is "minutes/minutes.apply_minutes_permission" parameter "policy" migrating from "string" to "integer" (for #912). That type is projected from the Cobra flag type (provenance cobra_flag_type), so it describes how the CLI accepts a value. Consumers build a command line from it, and "--policy 4" is the same argv under either declaration — a quoted "--policy \"4\"" still reaches pflag as 4 — while RunE keeps enforcing the same [2,4] domain. The parameter maps to property "policyId", which the command has always sent as a number, so "integer" is closer to the actual request than "string" was. Table values must be the canonical form schemaType emits: the JSON encoding of the type keyword, so `"string"` with its quotes rather than a bare string. The guard test recomputes both through schemaType and checks the decoded name against the closed JSON Schema type set — reviewedInterfaceRefRedirect was silently disabled twice by exactly this class of spelling mistake.
Go Bootstrap Scripts
These repo-local entrypoints are the supported shell entrypoints for building, testing, packaging, and policy checks.
make build: build thedwsCLI fromcmdmake test: run every default package returned bygo list ./...make test-plan: verify every default Go package belongs to exactly one CI test shardmake lint: run the repository-wide format check,go vet, and requiredstaticcheckmake format-check: check every tracked or non-ignored untracked repository Go source file withgofmtmake fmt: format every tracked or non-ignored untracked repository Go source filemake policy: reuse the currentdwsbinary and run the complete policy suite (make buildfirst)make package: build all release artifacts locallymake release-pre VERSION=vX.Y.Z-beta.N: validate a prerelease (PUBLISH=1pushes its tag)make release-stable VERSION=vX.Y.Z FROM_BETA=vX.Y.Z-beta.N: validate a stable promotion (PUBLISH=1pushes its tag)
Script groups:
- Root installers:
./scripts/install.sh,./scripts/install.ps1,./scripts/install-skills.sh - Product convenience installers:
./scripts/install-devapp.sh,./scripts/install-devapp.ps1,./scripts/install-event.sh - CI package plan:
./scripts/ci/test-packages.sh - Dev helpers:
./scripts/dev/build.sh,./scripts/dev/lint.sh,./scripts/dev/ci-local.sh,./scripts/dev/run-mock-e2e.sh,./scripts/dev/coverage.sh - Policy checks:
./scripts/policy/check-generated-drift.sh,./scripts/policy/check-command-surface.sh,./scripts/policy/check-command-compatibility.sh --base-ref <main-ref> --stable-ref <latest-GA-tag>,./scripts/policy/check-schema-catalog.sh,./scripts/policy/check-schema-binary.sh,./scripts/policy/check-open-source-assets.sh - Policy runtime files: set
DWS_POLICY_TMPDIRto override the default.worktrees/policy-tmpworkspace - Release entrypoint and contract:
./scripts/release/release.sh,./scripts/release/release-contract.sh; operator guide:docs/releasing.md - Release packaging helpers:
./scripts/release/post-goreleaser.sh,./scripts/release/stage-npm-package.sh,./scripts/release/pack-npm-package.sh,./scripts/release/verify-delivered-stable.sh,./scripts/release/verify-release-artifacts.sh,./scripts/release/verify-github-release-assets.sh,./scripts/release/verify-github-tag-authority.sh,./scripts/release/verify-package-managers.sh,./scripts/release/publish-homebrew-formula.sh