ci: add pmat comply gate (salvaged from #1)#8
Merged
Merged
Conversation
pmat is paiml's quality + compliance tool — runs the same ruleset that gates other paiml repos. Installed via the existing prebuilt-CLI pattern (same shape as bashrs + pv: download tarball, extract, add to PATH) rather than `cargo install pmat --locked` which would burn ~3 min per CI run compiling from source. Stable-only — same reasoning as bashrs + pv: the lint runs once across the toolchain matrix, while the MSRV (1.85.0) matrix entry still proves the workspace itself builds. This is the only piece of #1 worth keeping. The binary-upload + GHCR push from #1 was superseded by today's tag-driven release.yml (#7), which is the architecturally correct home for those (separate from the CI gate, fires on tags only). Closing #1 in favor of that split. Verified: `pmat comply` exits 0 on shipping-rust today. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
5 tasks
6 tasks
noahgift
added a commit
that referenced
this pull request
Apr 28, 2026
…eady parity (#10) Audit found three doc-drift items + one local-CI parity gap after the recent burst of work (PRs #5–#9). Fixing all four in one pass: 1. README CI gate tree was missing 4 steps (`bashrs lint`, `pv lint contracts/`, `pmat comply`, doc-test). Updated the tree + the prose summary + the "What this repo is teaching" / feature bullet at the top. 2. CHANGELOG `[Unreleased]` had no entries for the gate aggregator (#5), README badges (#6), release workflow (#7), `pmat comply` gate (#8), or the Rust 1.85 → 1.95 pin (#9). Filled in the gap. 3. README had no Distribution section despite the repo now shipping tarballs to GitHub Releases (4 targets) and container images to `ghcr.io/paiml/shipping-rust` (4 tags, public/anonymous). Added a "Releases" section between Container and CI. 4. `make ship-ready` was missing `bashrs lint` and `pmat comply` so a green local run did not match CI `gate`. Added `bashrs-lint` + `comply` targets and wired both into `ship-ready`. No Rust code or workflow YAML touched. `pmat comply` still COMPLIANT; `bashrs lint Makefile Dockerfile Dockerfile.distroless-cc` still 0 errors / 0 warnings.
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.
Summary
pmat complyto the existinggatejob, alongside the bashrs + pv lints.pmatvia the prebuilt-CLI tarball pattern (same shape as bashrs + pv) rather thancargo install pmat --locked— saves ~3 min of CI compile time per run.Why
This is the salvageable piece of #1. The rest of #1 (binary-upload + GHCR push) was superseded by today's tag-driven release.yml (#7), which is the right home for release artifacts (separate from the CI gate, fires on tags only). Closing #1 in favor of that split.
Test plan
gate (stable)runspmat complyand passesgate (1.85.0)skips it (stable-onlyif)pmat complyexits 0 on shipping-rust at HEAD🤖 Generated with Claude Code