browser-testing-with-s…
Use when testing web applications with visual verification - automates Chrome browser interactions, element selection, and…
Best practices for structuring prpm.json package manifests with required fields, tags, organization, multi-package management, enhanced file format, eager/lazy activation, and conversion hints
Claude Code
$ npx -y skills add AgentWorkforce/relay --skill prpm-json-best-practices-skill --agent claude-code
Codex
$ npx skills add AgentWorkforce/relay --skill prpm-json-best-practices-skill -a codex -y
Cursor
$ npx skills add AgentWorkforce/relay --skill prpm-json-best-practices-skill -a cursor -y
Gemini CLI
$ npx skills add AgentWorkforce/relay --skill prpm-json-best-practices-skill -a gemini-cli -y
GitHub Copilot
$ npx skills add AgentWorkforce/relay --skill prpm-json-best-practices-skill -a github-copilot -y
OpenCode
$ npx skills add AgentWorkforce/relay --skill prpm-json-best-practices-skill -a opencode -y
Windsurf
$ npx skills add AgentWorkforce/relay --skill prpm-json-best-practices-skill -a windsurf -y
name: prpm-json-best-practices description: Best practices for structuring prpm.json package manifests with required fields, tags, organization, multi-package management, enhanced file format, eager/lazy activation, and conversion hints
You are an expert at creating and maintaining `prpm.json` package manifests for PRPM (Prompt Package Manager). You understand the structure, required fields, organization patterns, and best practices for multi-package repositories.
**Use when:**
**Don't use for:**
`prpm.json` is **only needed if you're publishing packages**. Regular users installing packages from the registry don't need this file.
Use `prpm.json` when you're:
See `examples/single-package.json` for complete structure.
**Key fields:** `name`, `version`, `description`, `author`, `license`, `format`, `subtype`, `files`
See `examples/multi-package.json` for complete structure.
**Use when:** Publishing multiple related packages from one repo **Key difference:** Top-level `packages` array with individual package definitions
See `examples/collections-repository.json` for complete structure.
**Use when:** Bundling existing published packages into curated collections **Key points:**
See `examples/packages-with-collections.json` for complete structure.
**Use when:** Publishing packages AND creating collections that bundle them **Key points:**
| Field | Type | Required | Description | | ------------- | -------- | -------- | ------------------------------------------------------------------------------- | | `name` | string | **Yes** | Package name (kebab-case, unique in registry) | | `version` | string | **Yes** | Semver version (e.g., `1.0.0`) | | `description` | string | **Yes** | Clear description of what the package does | | `author` | string | **Yes** | Author name and optional email | | `license` | string | **Yes** | SPDX license identifier (e.g., `MIT`, `Apache-2.0`) | | `format` | string | **Yes** | Target format: `claude`, `cursor`, `continue`, `windsurf`, etc. | | `subtype` | string | **Yes** | Package type: `agent`, `skill`, `rule`, `slash-command`, `prompt`, `collection` | | `files` | string[] | **Yes** | Array of files to include in package |
| Field | Type | Description | | --------------- | -------- | ------------------------------------------------------------- | | `repository` | string | Git repository URL | | `organization` | string | Organization name (for scoped packages) | | `homepage` | string | Package homepage URL | | `documentation` | string | Documentation URL | | `license_text` | string | Full text of the license file for proper attribution | | `license_url` | string | URL to the license file in the repository | | `tags` | string[] | Searchable tags (kebab-case) | | `keywords` | string[] | Additional keywords for search | | `category` | string | Package category | | `private` | boolean | If `true`, won't be published to public registry | | `dependencies` | object | Package dependencies (name: semver) | | `scripts` | object | Lifecycle scripts (multi-package only) | | `eager` | boolean | If `true`, skill/agent loads at session start (not on-demand) |
When using `packages` array:
| Field | Type | Required | Description | | ------------- | -------- | ----------- | ------------------------------------------ | | `name` | string | **Yes** | Unique package name | | `version` | string | **Yes** | Package version | | `description` | string | **Yes** | Package description
Tired of copy/pasting from Claude Code into Slack so your coworker can paste it into their agent? Ever put an important rule in a skill or AGENTS.md, only for the agent to completely ignore it? You and your teammates agents ever build the same thing?
Use when testing web applications with visual verification - automates Chrome browser interactions, element selection, and…
Use when coordinating multiple AI agents with Agent Relay's workflow engine and need to pick the right orchestration pattern -…
Use when creating or improving Claude Code agents. Expert guidance on agent file structure, frontmatter, persona definition, tool…
Use when creating or publishing Claude Code hooks - covers executable format, event types, JSON I/O, exit codes, security…
Use when creating or fixing .claude/rules/ files - provides correct paths frontmatter (not globs), glob patterns, and avoids…
Use when creating new Claude Code skills or improving existing ones - ensures skills are discoverable, scannable, and effective…
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…