# Ovstorage Contributor Author Storage Plugin

> Use when adding or reviewing a storage backend plugin for ovstorage.

- Skill: `nvidia-omniverse/ovstorage-contributor-author-storage-plugin` (Agent Skill)
- Install (CLI): `npx skillmds@latest add nvidia-omniverse/ovstorage-contributor-author-storage-plugin`
- Raw SKILL.md: https://api.skillmd.com/api/skills/nvidia-omniverse/ovstorage-contributor-author-storage-plugin/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: CC-BY-4.0
- Author: NVIDIA-Omniverse (https://skillmd.com/u/nvidia-omniverse)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/nvidia-omniverse/ovstorage-contributor-author-storage-plugin

---


# Author a Storage Plugin

## Goal

Implement a backend plugin that advertises truthful capabilities, streams bytes
without buffering whole objects, maps errors into ovstorage codes, and passes
the plugin conformance harness.

## Recipe

1. Start with [`docs/public/plugin-development/README.md`](../../docs/public/plugin-development/README.md)
   for the shared C ABI, manifest, loader, and build loop.
2. Use [`docs/public/plugin-storage/README.md`](../../docs/public/plugin-storage/README.md)
   for the storage-specific `Factory` and `Backend` contract.
3. Mirror a small reference plugin such as
   [`ovstorage-plugin-http`](../../ovstorage-core/ovstorage-plugin-http/README.md)
   before introducing vendor SDK complexity. (The `file` backend is
   built into the library, not a plugin crate, so it is not a template
   for a loadable plugin.)
4. Set capability bits only for operations the backend actually honors.
5. Add streaming-invariant coverage for any streaming read or write path.
6. Run `make verify` before merge.

## Review Checks

- Manifest name/version come from Cargo package metadata.
- Secrets only travel through credential fields or credential providers.
- Write success means durable backend state is visible to a following read.
- Unsupported operations return `Unsupported` and do not advertise the matching
  capability.

