Parent: #89
Depends on: #97
Goal
Expose lint as a first-class Wright workflow through the existing compiler/session/tooling stack instead of creating a separate analyzer path.
Scope
Add wright lint for supported OPY and raw Workshop inputs.
Reuse the shared driver/session compilation and semantic pipeline.
Return structured lint findings with stable rule ID, severity, message, source identity/span, and evidence/confidence metadata where applicable.
Integrate machine-readable output with the existing CLI JSON/result contracts.
Expose the same lint query/results through Wright's embedding/tool/agent APIs rather than duplicating rule execution.
Preserve deterministic configuration from [M12] Establish lint rule registry and configuration contract #97 across CLI and programmatic invocation.
Non-goals
Acceptance criteria
wright lint runs on supported OPY and raw Workshop through the shared compiler/session pipeline.
CLI text and JSON output expose stable rule IDs, configured severity, and original source identity/spans where available.
Programmatic/tool consumers can request the same lint findings without invoking the CLI or rebuilding semantic state through a separate path.
Rule enable/disable/severity configuration from [M12] Establish lint rule registry and configuration contract #97 behaves consistently across CLI and API use.
Existing check/analyze behavior remains compatible unless an intentional contract change is documented.
No plugin host or [v0.2 workshop-rs] Define Workshop catalog, locale, extension, and version boundaries #96 implementation is required.
Current CI is green at acceptance.
Relationships
Parent: #89
Depends on: #97
Goal
Expose lint as a first-class Wright workflow through the existing compiler/session/tooling stack instead of creating a separate analyzer path.
Scope
wright lintfor supported OPY and raw Workshop inputs.Non-goals
Acceptance criteria
wright lintruns on supported OPY and raw Workshop through the shared compiler/session pipeline.check/analyzebehavior remains compatible unless an intentional contract change is documented.Relationships