Repository navigation
fix(ci): validate every changed skill, and trim the II description - #455
Merged
Merged
Conversation
`skill-validator check` accepts exactly one path and exits 3 on more, so the PR job validated nothing whenever a PR touched two or more skills: the report came back empty and the gate, which only failed on exit code 1, went green. Each path now gets its own invocation, and the gate fails on any code other than 0 (clean) or 2 (warnings). That hole is how internet-identity's 1029-character description reached main, where skills/ is checked as a single path and the 1024-character limit failed the run, so the site was never deployed. Two words out of the description brings it to 1014. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Skill Validation ReportValidating skill: /home/runner/work/icskills/icskills/skills/internet-identityStructure
Frontmatter
Tokens
Markdown
Tokens
Content Analysis
Contamination Analysis
Result: 1 warning Project Checks |
There was a problem hiding this comment.
🟡 Changes recommended
The exit-code aggregation lets an earlier warning mask later usage or execution errors, allowing the final gate to pass even when a skill was not successfully validated.
1 open issue
What changed in this PR
This PR addresses the validation failure that blocked deployment of the Internet Identity skills after #454 and updates CI to validate multi-skill changes individually.
Changes:
- Runs the validator separately for each changed skill and aggregates results.
- Updates the failure gate to reject exit codes other than success or warnings.
- Shortens the Internet Identity description to fit the 1,024-character limit without changing the skill body.
| File | Description |
|---|---|
skills/internet-identity/SKILL.md |
Trims the description while preserving routing terms. |
.github/workflows/_checks.yml |
Adds per-path validation, result aggregation, and stricter failure conditions. |
Review effort: Balanced
The aggregation only raised the exit code from 0, so a warning on one skill pinned it at 2 and a later usage error could not lift it: codes 2 then 3 aggregated to 2 and the gate passed with a skill unvalidated, which is the failure this change set out to close. Errors, other non-zero codes and warnings are now tracked separately and resolved in that order. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
lwshang
approved these changes
Nov 9, 2026
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.

checks / validatefailed on the push of #454 tomain(run), sodeploy-ic.ymlnever ran and the five Internet Identity skills are not on https://skills.internetcomputer.org/.The error
Dropping two words ("It also covers" → "Also covers", "wallet integration or ICRC signer flows" → "wallet or ICRC signer flows") brings it to 1014, in line with
cloud-engine-canisters(1014) anddeploy-to-cloud-engine(1010). No routing term is lost:wallet-integrationstill appears in the same sentence as the skill to load instead.Why CI did not catch it on the PR
skill-validator checktakes exactly one path:The changed-skills step builds a space-separated list of paths, so on any PR touching two or more skills the validator exited 3 (usage error) with an empty report, and the gate only failed on exit code
1. Every such PR has been going green without being validated. On a push tomainthe same step passes the single pathskills/, which is why the error only surfaced after the merge.Two changes:
Verification
Per-path loop over the five skills from #454, with the description fix applied:
Same loop before the description fix returns
1forskills/internet-identity, so the new gate catches exactly the failure that got through.skill-validator check skills/ --skip linksnow exits 2 (was 1), andnode scripts/check-project.jspasses for 39 skills with the two pre-existing eval-file warnings.No skill body changed, so no evals were re-run.
🤖 Generated with Claude Code