OpenHands / OpenHands/extensions

Add a pinned LintLang gate for authored SKILL.md files

Open Beginner friendly
#575 1 comment 0 reactions 0 assignees View on GitHub

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.md under skills/ and plugins/ (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.yml gains a lintlang-skill-gate job 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 Tests and Check Extensions jobs stay unmodified and green.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.