Use when creating new skill repositories from scratch, standardizing or validating existing skill repo structure, setting up composer/release workflows for skills, configuring split licensing (MIT + CC-BY-SA-4.0), or fixing plugin.json / SKILL.md validation errors.
From skill-reponpx claudepluginhub netresearch/claude-code-marketplace --plugin skill-repoThis skill is limited to using the following tools:
checkpoints.yamlevals/evals.jsonreferences/composer-setup.mdreferences/installation-methods.mdreferences/marketplace-integration.mdscripts/migrate-licensing.shscripts/validate-evals.shscripts/validate-skill.shtemplates/LICENSE-CC-BY-SA-4.0.templatetemplates/LICENSE-MIT.templatetemplates/README.md.templatetemplates/auto-merge-deps.yml.templatetemplates/composer.json.templatetemplates/pre-commit.templatetemplates/release.yml.templateGuides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Details PluginEval's skill quality evaluation: 3 layers (static, LLM judge), 10 dimensions, rubrics, formulas, anti-patterns, badges. Use to interpret scores, improve triggering, calibrate thresholds.
Standards for Netresearch skill repository layout and distribution.
{repo-name}/
├── .claude-plugin/plugin.json # Plugin metadata (required)
├── skills/{name}/SKILL.md # AI instructions (required)
├── README.md # Human docs (required)
├── LICENSE-MIT # Code license (required)
├── LICENSE-CC-BY-SA-4.0 # Content license (required)
├── composer.json # PHP distribution (required)
├── references/ # Extended docs for >500w content
├── scripts/ # Automation
└── .github/workflows/
├── release.yml # Tag-triggered release
├── validate.yml # Caller for reusable validation
└── auto-merge-deps.yml # Caller for dep auto-merge
| Path pattern | License |
|---|---|
skills/**/*.md, references/**, README.md, docs/** | CC-BY-SA-4.0 |
scripts/**, .github/workflows/**, *.sh, *.py, *.php | MIT |
composer.json, plugin.json, config files | MIT |
SPDX expression: (MIT AND CC-BY-SA-4.0). Copyright: Netresearch DTT GmbH. No bare LICENSE file — use split files only.
---
name: skill-name # lowercase, hyphens, max 64 chars
description: "Use when <trigger conditions>"
---
Body: max 500 words. Use references/ for extended content.
.claude-plugin/plugin.json){
"name": "skill-name",
"version": "1.0.0",
"skills": ["./skills/skill-name"],
"license": "(MIT AND CC-BY-SA-4.0)",
"author": {"name": "Netresearch DTT GmbH", "url": "https://www.netresearch.de"}
}
Name must match GitHub repo name. Type must be ai-agent-skill. No version field (derived from git tags). No composer.lock.
{
"name": "netresearch/{repo-name}",
"type": "ai-agent-skill",
"license": "(MIT AND CC-BY-SA-4.0)",
"require": {"netresearch/composer-agent-skill-plugin": "*"},
"extra": {"ai-agent-skill": "skills/{name}/SKILL.md"}
}
Skill repos MUST delegate CI to skill-repo-skill reusable workflows:
# .github/workflows/validate.yml
uses: netresearch/skill-repo-skill/.github/workflows/validate.yml@main
Required callers: validate.yml, release.yml, auto-merge-deps.yml, harness-verify.yml, eval-validate.yml.
Auto-merge callers must use pull_request_target trigger (not pull_request).
.claude-plugin/plugin.jsonchore: release vX.Y.Zgit tag -s vX.Y.Z -m "vX.Y.Z"git push origin main vX.Y.Z/plugin marketplace add netresearch/claude-code-marketplace~/.claude/skills/{name}/composer require netresearch/{repo-name}scripts/validate-skill.sh
grep -E not grep -P (macOS BSD grep lacks -P)bash in shebangs (macOS default is zsh)[[ ]] for conditionalsreferences/installation-methods.mdreferences/composer-setup.mdContributing: https://github.com/netresearch/skill-repo-skill