Skip to content

feat(schema-lint): @apso/schema-lint, one .apsorc rule set for CLI, platform and AI builder - #66

Closed
cultron wants to merge 1 commit into
mainfrom
feat/schema-lint
Closed

cultron wants to merge 1 commit into
mainfrom
feat/schema-lint

Conversation

@cultron

@cultron cultron commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Adds @apso/schema-lint: lintSchema, fixSchema, formatLintReport. 15 error rules (compile/DB breaking, most auto-fixable) and 9 warnings. Tested against 84 unique real .apsorc files; 54/62 v2 schemas clean, remaining errors are real (verified tsc failures). Used by the CLI (apso schema lint, generate guard; apsoai/cli#138) and the AI schema agent.

Release plan (new package, trusted publishing can't be set up before it exists):

  1. Matt publishes 0.1.0 once by hand from the packed tarball.
  2. Matt adds the trusted publisher (apsoai / apso-packages / auto-release.yml) on @apso/schema-lint.
  3. Merge this PR with [skip ci] in the squash title, then tag ts-schema-lint-v0.1.0 on the merge commit, so auto-release doesn't try to republish 0.1.0 (the registry guard would refuse a hand-published version).

…I, platform and AI builder

lintSchema/fixSchema/formatLintReport over a flat rule array. Errors are
schemas the CLI scaffolds into code that does not compile (field vs
relationship property collisions, duplicate FK columns, reserved class
names, unknown types, enums without values, bad index fields) or a DB that
cannot take its first insert (required FK cycles). Ports the client and CLI
codegen naming fixture as the canonical tests. Registered in auto-release.
@cultron

cultron commented Oct 2, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #67. @apso/schema-lint was never published, so the linter now ships inside @apso/schema-tools (same lint API, exported from the package root) together with the schema edit operations for the AI agents. The branch is kept; #67 is built on top of it.

@cultron cultron closed this Oct 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant