Conversation
Runs tessl skill lint on every PR and push to main, scoped to changed tiles (parents of tile.json) following the same discovery pattern as tessl-eval.yml. Push to main lints all tiles. Fails CI on lint errors (non-zero exit). Lint warnings (orphan files, oversized SKILL.md, etc.) are surfaced as GitHub Annotations and step summary entries but do not fail the build, since they are informational not blocking. No TESSL_TOKEN required — lint is local validation, so it works on fork PRs unlike eval/review. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Promotes per-tile warning-count annotations from ::notice:: (blue ℹ️) to ::warning:: (yellow⚠️ ) so they're more visible in the PR Conversation tab and Files Changed tab. Still doesn't fail the check — GitHub has no "warning" check status, only success/failure/neutral. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
shsteimer
added a commit
that referenced
this pull request
Apr 28, 2026
Adds a trailing comment marker to page-import SKILL.md so the tessl-lint workflow (introduced in #106) sees a tile change and runs against the EDS tile in its current main-branch state (with all the warnings PR #104 will fix). Demonstrates how warnings surface in the GitHub UI. This PR will be closed without merging. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
shsteimer
added a commit
that referenced
this pull request
Apr 28, 2026
Iterating on test branch to evaluate UX before porting to PR #106. Posts a sticky comment to the PR Conversation tab summarizing per-tile lint results. Comment is identified by an HTML marker and updated in-place across pushes (Codecov-style), so a PR has at most one tessl-lint comment regardless of push count. Per-tile warnings are shown inside collapsible <details> blocks so the comment stays compact at a glance. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Posts a sticky comment to the PR Conversation tab summarizing per-tile lint results. Comment is identified by an HTML marker and updated in-place across pushes (Codecov-style), so a PR has at most one tessl-lint comment regardless of push count. Per-tile warnings are shown inside collapsible <details> blocks so the comment stays compact. Failing tiles get a top-level error block plus the standard ::error:: annotation, keeping the check status red. Adds pull-requests: write permission for comment posting. 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
Adds `.github/workflows/tessl-lint.yml` to run `tessl skill lint` on every PR and push to main.
Why now
While diagnosing tile registration issues in PR #104, several drift problems would have been caught earlier with CI lint: skills missing from `tile.json`, broken cross-skill references, files in non-spec directories. This adds a guardrail.
Example output
PR #107 (`test: exercise tessl-lint workflow (do not merge)`) was used to validate the comment surfacing while iterating on this PR. Its sticky comment shows what a PR with warnings looks like.
GitHub check status caveat
GitHub has no "warning" check status — only success / failure / neutral. This workflow uses success ✅ for warnings (with the sticky comment + annotations as the visibility signal) and failure ❌ for hard errors. If we later want stricter behavior (e.g., fail on any warnings, or fail-on-new-warnings only), it can be added on top of this baseline.
Verification
Follow-ups
🤖 Generated with Claude Code