Add validate-strict CI workflow#89
Merged
Merged
Conversation
Locks in the 0-error closed-schema baseline established across PRs #84-#88 so it can't silently regress on future merges. Mirrors the qc.yaml workflow shipped to TraitMech in PR #77 and adapted for the CommunityMech runner conventions. Runs `just validate-strict` + `just audit-writers` + `pytest tests/` on PRs touching kb/communities/, schema, source, scripts, justfile, or this workflow. Uploads the categorized TSV reports as workflow artifacts so reviewers can inspect failures without re-running locally. Deliberately scoped narrower than `just qc` — the existing network-quality.yml handles the network-integrity audit; this new workflow specifically gates closed-schema validation + writer audit + unit tests, which are fast and run on every PR. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds a dedicated GitHub Actions workflow to continuously enforce the repo’s “0 closed-schema errors” baseline and writer-safety checks, ensuring strict schema validation and the writer audit can’t silently regress on future PRs.
Changes:
- Introduces
validate-strictCI workflow triggered on relevant PR changes (schema/data/scripts/code). - Runs
just validate-strict,just audit-writers, andpytestin CI. - Uploads strict-validation + writer-audit TSV reports as build artifacts.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Three findings, all addressed: - Path globs: \`**.py\` doesn't actually match nested subdirs in GitHub Actions glob semantics — it behaves like \`*.py\`. Switch to \`**/*.py\` so changes under src/communitymech/<subpkg>/ (like network/, validators/, embedding/) trigger the workflow. - Push trigger had no \`paths:\` filter, so the workflow ran on every commit to main. Mirror the pull_request path list via a YAML anchor (&trigger_paths + *trigger_paths) so the two stay in sync. - uv sync: switch to \`--frozen --all-extras\` so the workflow fails if uv.lock is stale (instead of silently re-resolving) while keeping the dev/test extras the existing network-quality.yml uses. Also added uv.lock + tests/**/*.py to the trigger paths so dependency and test changes re-run the workflow. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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
Locks in the 0-error closed-schema baseline established across PRs #84-#88 so it can't silently regress on future merges. Mirrors the qc.yaml workflow shipped to TraitMech #77 and matches the CommunityMech runner conventions (Python 3.10, `uv sync --all-extras`).
Runs three checks on every PR touching schema/data/source/scripts:
Uploads `reports/instance_validation_failures.tsv` + `reports/pipeline_writers_audit.tsv` as artifacts.
Scope
Narrower than `just qc` — the existing `network-quality.yml` already covers the network-integrity audit. The new workflow specifically gates the fast closed-schema + writer-audit + unit-test loop, which can run on every PR without becoming a bottleneck.
Test plan
🤖 Generated with Claude Code