Files
awesome-opencode/data/examples/README.md
John SmithandClaude Opus 5.5 56fad94c34 feat(schema): add kind, topics, compat, npm and path; reject unknown fields and non-root repo URLs
Entries gain a fixed kind and 1-3 topics (replacing 374 one-off tags as the categorization axis), an OpenCode API compat field (required for plugins), and npm/path for packages and monorepo folders. repo must be a repository root; unknown fields such as install: or repository: are rejected. Cross-entry rules (one entry per repo+path, kind must fit the category, no placeholder owners or mojibake) live in scripts/utils/catalog.js, and validate.js now always loads the whole catalog and fails on unparseable YAML. Adds npm run fmt for canonical formatting and drops the unused glob dependency.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 13:00:22 -04:00

41 lines
1.6 KiB
Markdown

# Examples
This directory contains exemplar YAML files showing the full schema for each extension type.
**These are reference examples, not actual entries.**
## Usage
When adding a new entry to `data/{category}/`, use the corresponding example as a reference:
| Adding to... | Reference |
|-------------|-----------|
| `data/plugins/` | [plugin.yaml](plugin.yaml) |
| `data/themes/` | [theme.yaml](theme.yaml) |
| `data/agents/` | [agent.yaml](agent.yaml) |
| `data/projects/` | [project.yaml](project.yaml) |
| `data/resources/` | [resource.yaml](resource.yaml) |
| `data/projects/` (`kind: fork`) | [fork.yaml](fork.yaml) |
## Required vs Optional Fields
### Required (all entries must have)
- `name` - Display name
- `repo` - Repository URL (https://github.com/...)
- `tagline` - Short description (max 120 chars)
- `description` - Full description (can be multi-line)
### Optional (include if relevant)
- `scope` - Installation scope: `[global]`, `[project]`, or `[global, project]` (defaults to `[global]`)
- `tags` - Array of strings for filtering
- `min_version` - Minimum OpenCode version (semver)
- `homepage` - Documentation URL if different from repo
- `installation` - Markdown installation instructions
## Notes
- **Type is derived from directory** - No `type` field needed; it's inferred from the folder
- **Scope is optional** - Defaults to `[global]`; add if project-level install is relevant
- **Installation is markdown** - Use headers, code blocks, lists as needed
- **Schema allows additional fields** - Future fields can be added without breaking existing entries