OpenHands / OpenHands/extensions
Add a pinned LintLang gate for authored SKILL.md files
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 148
- Forks
- 90
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 36
Description
Desired Behavior
Add a deterministic, zero-LLM check for authored SKILL.md files, using a pinned release of LintLang. LintLang flags statically-detectable instruction-language problems (unbounded retry loops, missing priority ordering, ambiguous conditionals) with no network or model calls.
Proposed shape, as a new lintlang-skill-gate job in .github/workflows/tests.yml:
- Select every
SKILL.mdunderskills/andplugins/(79 files today). - Run
uvx --from lintlang==0.6.0 lintlang scan <files> --fail-on fail. - Print all findings, but fail only on HIGH/CRITICAL. No
continue-on-error, no baseline file.
Current default branch (1bad294): 79 scanned, 0 FAIL, 0 HIGH/CRITICAL, exit 0. So the gate starts green and only blocks regressions.
This is additive to sync_extensions.py --check and validate-claude-code; it checks instruction-language structure, not runtime behavior or safety.
Acceptance Criteria
-
tests.ymlgains alintlang-skill-gatejob pinned to an exact LintLang release. - REVIEW-tier findings are logged but do not fail the job; HIGH/CRITICAL do.
- No skill content, manifests, or lockfiles change.
- Existing
TestsandCheck Extensionsjobs stay unmodified and green.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in .github/workflows/tests.yml by reviewing the existing Tests and Check Extensions jobs, then add the proposed lintlang-skill-gate job for SKILL.md files under skills/ and plugins/. Run the pinned LintLang command against the current 79 files and confirm REVIEW findings are logged while HIGH/CRITICAL findings fail the job, with existing jobs unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, python
- Domain
- ci-cd, testing
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 84/100