feat: cross-harness skill portability for the open standard#128
Draft
ryzizub wants to merge 4 commits into
Draft
feat: cross-harness skill portability for the open standard#128ryzizub wants to merge 4 commits into
ryzizub wants to merge 4 commits into
Conversation
Replicate the Phase 0 skill-portability work from VeryGoodOpenSource/vgv-wingspan#230 for this plugin: make skills degrade gracefully on non-Claude harnesses (Codex, Gemini CLI, OpenCode) via the Agent Skills open standard, without changing Claude Code behavior. - CI: validate every skill each run (list-skills) and add a frontmatter guard job (scripts/ci/check-frontmatter.sh) covering UTF-8 BOM detection and agents/**/*.md frontmatter, which no other check covers. - $ARGUMENTS literal-text fallbacks in very-good-analysis-upgrade and dart-flutter-sdk-upgrade. - AskUserQuestion fallbacks in accessibility and create-project, backed by a shared skills/shared/references/interaction-fallbacks.md symlinked into each consuming skill. - MCP graceful degradation: the dart / very-good-cli MCP tools fall back to the equivalent very_good / dart / flutter CLI off Claude Code (create-project, license-compliance, testing, layered-architecture, ui-package, flutter-reviewer). green-gate keeps its hook-enforced MCP-only mandate on Claude Code and only adds the off-Claude fallback. - CONTRIBUTING gains a Cross-harness portability section; CLAUDE.md structure block and cspell words updated. Refs VeryGoodOpenSource/vgv-wingspan#230 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Relocate check-frontmatter.sh from scripts/ci/ to .github/scripts/ so the CI-only helper lives alongside the workflow that runs it. Update the ci.yaml job command and the CONTRIBUTING references, and drop the scripts/ node from the CLAUDE.md structure tree (dotfile CI dirs are not enumerated there). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Match the CONTRIBUTING frontmatter guidance in VeryGoodOpenSource/vgv-wingspan#230: the spec's optional skills-ref linter rejects top-level fields outside the six it allows, and nesting the Claude Code extras under metadata: is the escape hatch if strict conformance is ever needed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reconcile with VeryGoodOpenSource/vgv-wingspan#230: name the non-Claude harnesses (Codex, Gemini CLI, OpenCode) the portability section targets, and state the full spec-conformance rules for the skill name field (kebab-case, no leading/trailing/consecutive hyphen, 1-64 chars, matches the directory). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ryzizub
marked this pull request as ready for review
July 24, 2026 15:34
ryzizub
marked this pull request as draft
July 27, 2026 09:03
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.
Description
Replicates the skill-portability work from VeryGoodOpenSource/vgv-wingspan#230 for this plugin. Goal: the skills degrade gracefully on non-Claude harnesses (Codex, Gemini CLI, OpenCode) via the Agent Skills open standard, with no change to Claude Code behavior. Single-source
SKILL.mdplus in-body fallbacks, no build step.CI
detect-changed-skills→list-skills:validate-skillnow runs against every skill each PR, so a malformed skill fails the build instead of silently vanishing on another host.frontmatter-guardjob running.github/scripts/check-frontmatter.sh— covers the two gapsvalidate-skillleaves: a UTF-8 BOM (Gemini-fatal, passesvalidate-skill) andagents/**/*.mdfrontmatter, which no other check validates. (name-matches-directory was already enforced.)In-body fallbacks
$ARGUMENTSliteral-text fallbacks invery-good-analysis-upgradeanddart-flutter-sdk-upgrade(fire when the host does not substitute the token).AskUserQuestionfallbacks inaccessibilityandcreate-project, backed by a sharedskills/shared/references/interaction-fallbacks.mdsymlinked into each consuming skill.dart/very-good-cliMCP (the analogue of Wingspan'scontext7). Skills now name the equivalentvery_good/dart/flutterCLI fallback and never block when the server is absent (create-project,license-compliance,testing,layered-architecture,ui-package,flutter-reviewer).green-gatekeeps its deliberate, hook-enforced MCP-only mandate on Claude Code and only adds the off-Claude fallback.Docs
CONTRIBUTING.md: new "Cross-harness portability" section (names the tier-2 harnesses, the$ARGUMENTS/${CLAUDE_SKILL_DIR}guidance, themetadata:escape hatch for non-spec frontmatter, MCP/subagent/symlink notes); frontmatter guard added to "Validate before you push"; CI Checks table aligned to the real workflow jobs;namefrontmatter rule tightened to the spec-conformance set.CLAUDE.md: repository-structure block updated forskills/shared/.config/cspell.json:agentskills,Codex,opencode.Not included (differs from the source PR / not applicable here)
review→quality-reviewrename and thedocs/portability/reference docs (both dropped in #230).${CLAUDE_SKILL_DIR}fallbacks (unused here) andcreate-pr/rebasedestructive-op guards (no such skills).Verified locally
.github/scripts/check-frontmatter.shpasses; cspell 0 issues; markdownlint 0 issues;claude plugin validate .passes (only the pre-existing root-CLAUDE.mdwarning);ci.yamlparses;list-skillsyields 15 skills withskills/sharedcorrectly excluded.120000(same blob as #230);check-frontmatter.shkeeps its exec bit.Type of Change
feat)fix)refactor)docs)ci)chore)Refs VeryGoodOpenSource/vgv-wingspan#230
🤖 Generated with Claude Code