This document defines the canonical behavior rules that ALL AI agents must follow to work with bioconductor’s skill repository. It establishes a platform-agnostic contract: agents adapt to this standard, not the other way around.
Skills are platform-agnostic by design. They contain no embedded vendor-specific metadata or logic. Agents are responsible for:
Skills do not reference platforms:, triggers:, or other agent-specific configuration.
skills/{skill-name}/SKILL.mdSkills are discovered and invoked through natural language matching, not rigid command syntax. See § Skill Discovery & Invocation for details.
Agents read and follow skills as instructions:
Skills are prompts, not code. Agents interpret and execute them using their own tools.
Skills must define workflows (the intent, multi-step process, and domain knowledge), not just provide raw code. While highly specific code snippets can be provided to overcome LLM anti-patterns, handle unique APIs, or adhere to strict lab standards (e.g., BiocParallel vs lapply), they must serve strictly as guardrails embedded within a numbered workflow step, never as the entire skill itself.
Every skill MUST include these YAML frontmatter fields:
---
name: skill-name # Unique identifier (kebab-case, REQUIRED)
description: Brief purpose # One-line description driving discovery (REQUIRED)
version: 1.0.0 # Semantic version (REQUIRED)
category: meta # Primary domain: meta, r-packages, etc. (REQUIRED)
author: bioconductor # Creator/maintainer (OPTIONAL)
tags: [tag1, tag2] # Searchable tags (OPTIONAL)
---
Skills MUST NOT contain:
platforms: field (skills are agent-agnostic by design)triggers: field (agents use natural language + SKILLS.md for discovery)# [Skill Name]
Brief overview (1-2 paragraphs).
## Usage
How users naturally invoke this skill.
Agents will adapt this to their platform.
## Prerequisites
Required files, setup, or dependencies.
## Process
Numbered steps describing what to do.
Platform-agnostic language: "read the file", not "use Read tool".
## Output Format
Expected output structure or examples.
## Platform-Specific Notes (Optional)
Only if meaningful platform differences exist.
Document HOW platforms differ, not what they should do.
## Examples
Concrete usage scenarios.
## Notes
Additional context or caveats.
Principle: Describe WHAT to do, not HOW (specific tools). Let agents figure out HOW with their available capabilities.
Skills must maintain this document (AGENTS.md) as the single source of truth for format specifications and standards.
Instead of duplicating, use references:
✅ "See AGENTS.md § Skill File Format for complete specification"
✅ "Check that frontmatter conforms to AGENTS.md § Minimal Required Fields"
❌ Do not list required fields or copy YAML templates
❌ Do not duplicate external classification systems or checklists
Skills SHOULD include:
Principle: Reference authoritative sources; only include content unique to the skill’s purpose.
The file SKILLS.md is the canonical skill index. It is:
Format:
### [Category]
#### [Skill Name]
**Purpose**: From skill description
**Location**: `skills/[name]/SKILL.md`
**Invocation**: "Natural language the user might say"
**When to use**: Context for when this skill applies
/create-skill (optional shortcut)@workspace create a new skill (optional shortcut)Agents MAY provide platform-specific shortcuts for convenience:
/skill-name slash commands@workspace pattern triggersImportant: These shortcuts are optional conveniences, not the primary invocation mechanism. Users who don’t know or use these shortcuts can still invoke skills through natural language.
Compliant agents:
Co-authored-by: AI Agent <agent@example.com> at the end of the commit message, separated by a blank line)./skill-name, @workspace patterns)Platform adapters are thin wrapper documents located in instructions/{agent-name}.md that explain how to install skills for a specific agent, provide optional shortcuts, and list troubleshooting tips.
Example minimal structure:
# Claude Code Setup
## Installation
[Setup steps for configuring skills on Claude Code]
## Using Skills
1. Browse available skills in [SKILLS.md](../SKILLS.md)
2. Invoke naturally: "Analyze this R package"
3. Optional: Use slash commands if configured (e.g., `/analyze-r-package`)
## Troubleshooting
[Platform-specific troubleshooting tips]
See [AGENTS.md](../AGENTS.md) for canonical behavior and [SKILLS.md](../SKILLS.md) for skill catalog.
| Concept | Who owns it | What it contains | What it MUST NOT contain |
|---|---|---|---|
| Skill Invocation Examples | SKILLS.md |
Natural language examples (“I want to make a skill that…”) | N/A (Do not duplicate in instructions/{agent}.md) |
| Platform-Specific Shortcuts | instructions/{agent}.md |
Optional shortcuts (e.g., /create-skill) |
N/A (Do not put shortcuts in skill files) |
| Skill Process & Logic | SKILL.md files |
Step-by-step process, prerequisites, output format, platform-agnostic logic | Platform-specific setup, shortcuts, or configuration (do not put these in skill files) |
| Setup & Configuration | instructions/{agent}.md |
How to install skills, platform-specific troubleshooting | N/A |
| Canonical Behavior Rules | AGENTS.md |
Discovery/invocation rules, compliance criteria, prohibited metadata | N/A |
| Technical Format | SKILL_STANDARD.md |
YAML frontmatter fields, markdown structure, validation checklist | N/A |
A: Document the platform differences in a “Platform-Specific Notes” section within the skill. Let each agent adapt the approach to their capabilities.
A: Yes. But they must re-validate against the repository version periodically to stay current.
A: MCP is optional infrastructure. Skills are designed to work as plain markdown + YAML, with or without MCP support. If an agent uses MCP, it’s an implementation detail, not a requirement here.
Maintained by: bioconductor
When to update:
Change process:
The key principle: Agents adapt to this standard and repository, not the other way around. Skills are portable, platform-agnostic prompts. Agents are the layer that brings them to life on specific platforms.