Plugin Development
A developer-oriented map of how the plugin is organized: where agents, skills, extensions, and tests live, and where to go for detailed contribution guidance.
Plugin Anatomy
The plugin follows a standard Copilot CLI plugin layout defined by plugin.json:
osdu-copilot-plugin/
├── plugin.json # Manifest: name, version, entry points
├── AGENTS.md # System identity and routing rules
├── .mcp.json # MCP server configuration
│
├── agents/ # Agent definitions (*.agent.md)
├── skills/ # Skill definitions (SKILL.md per directory)
│
├── .github/extensions/ # Copilot CLI extensions
│ ├── cron/ # Session-scoped task scheduling
│ └── osdu/ # Live OSDU platform access
│
├── tests/ # Four-layer test framework
│ ├── evals/triggers/ # L2: Trigger eval sets per skill
│ ├── evals/scenarios/ # L3: Multi-turn session scenarios
│ ├── scripts/ # Test runners and validators
│ └── unit/ # pytest suite
│
├── docs/ # This documentation site
├── Makefile # Test runner entry point
└── CONTRIBUTING.md # Full contributor guide
What Contributors Change
| What you want to do | Where to look |
|---|---|
| Add or modify a skill | skills/{name}/SKILL.md with optional reference/ and scripts/ |
| Add or modify an agent | agents/{name}.agent.md and routing in AGENTS.md |
| Change system routing or identity | AGENTS.md |
| Add or modify an extension | .github/extensions/{name}/ |
| Add trigger test coverage | tests/evals/triggers/{name}.json |
| Add session test coverage | tests/evals/scenarios/{name}-workflow.json |
| Update MCP server config | .mcp.json |
Key Commands
make test # Lint + unit tests (~2s)
make integration S=glab # Session test for one skill
make doctor # Check local CLI dependencies
For the full development workflow, conventions, and authoring steps, see CONTRIBUTING.md.
-
Four-layer test model: structure validation, trigger accuracy, session integration, and skill value benchmarking.