Add @probo/skills multi-agent compliance package

Ship compliance skills and agent plugin wiring for Claude Code,
Codex, OpenCode, and Cursor via Probo MCP (OAuth 2.0). Includes
access-review and missing-signatures workflows, repo-root Git
marketplaces, validation, and npm release CI.

Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Bryan FRIMIN <bryan@frimin.fr>
This commit is contained in:
Cursor Agent
2026-07-10 12:59:49 +00:00
parent a6aabc6dad
commit e3209b74ae
33 changed files with 1701 additions and 1 deletions

View File

@@ -0,0 +1,154 @@
# Multi-agent compatibility
`@probo/skills` targets **Claude Code**, **Codex**, **OpenCode**, and
other MCP-capable agents (including **Cursor**). The portable core is Probo
MCP plus Agent Skills–compatible `SKILL.md` files.
## What works where
| Component | Claude Code | Codex | OpenCode | Cursor |
| --- | --- | --- | --- | --- |
| Probo MCP (OAuth) | ✅ Plugin `.mcp.json` | ✅ `.codex-plugin` + `.mcp.json` | ✅ Manual MCP config | ✅ IDE MCP settings |
| Skills (`SKILL.md`) | ✅ `skills/` | ✅ `skills/` via `.codex-plugin` | ✅ `.opencode/skills/` or `.claude/skills/` | ✅ Copy/symlink to `.cursor/skills/` |
| Commands | ✅ `commands/` → `/probo:…` | ⚠️ Use skills instead | ⚠️ Native `skill` tool | ❌ Use skill or rules |
| Plugin manifest | `.claude-plugin/` | `.codex-plugin/` | Discovery paths (no manifest) | No native manifest |
| Marketplace catalog | `.claude-plugin/marketplace.json` (repo root or package) | `.agents/plugins/marketplace.json` (repo root or package) | — | — |
## Probo MCP (all agents)
Set the instance URL:
```bash
export PROBO_BASE_URL="https://your-probo-instance.example.com"
```
Endpoint: `${PROBO_BASE_URL}/mcp/v1` (HTTP, OAuth 2.0). Do not configure a
static bearer token — OAuth discovery uses
`/.well-known/oauth-protected-resource`.
### Claude Code
**From the monorepo or GitHub** (repo-root catalog at
`.claude-plugin/marketplace.json`):
```bash
claude plugin marketplace add getprobo/probo
# or, from a local clone:
claude plugin marketplace add .
claude plugin install probo@probo
claude mcp login probo # or /mcp in session
/probo:access-review Q3 GitHub review
```
**From the package directory** (catalog resolves `@probo/skills` from npm):
```bash
claude plugin marketplace add ./packages/skills/.claude-plugin
claude plugin install probo@probo
claude mcp login probo
```
Or install the plugin directory directly:
```bash
claude --plugin-dir ./packages/skills
```
### Codex
**From the monorepo or GitHub** (repo-root catalog at
`.agents/plugins/marketplace.json`):
```bash
codex plugin marketplace add getprobo/probo
# or, from a local clone:
codex plugin marketplace add .
codex plugin install probo@probo
codex mcp login probo
```
**From the package directory** (catalog at
`packages/skills/.agents/plugins/marketplace.json`):
```bash
codex plugin marketplace add ./packages/skills
codex plugin install probo@probo
codex mcp login probo
```
Or install the plugin directory directly:
```bash
codex plugin install ./packages/skills
codex mcp login probo
```
Skills load from `./skills/` via `.codex-plugin/plugin.json`. The repo-root
marketplace `source.path` is `./packages/skills`; the package-level
catalog uses `./` (plugin package root).
### OpenCode
OpenCode discovers skills at `.opencode/skills/`, `.claude/skills/`, and
`~/.config/opencode/skills/`. Options:
**Option A — symlink from this package:**
```bash
mkdir -p .opencode/skills
ln -s ../../packages/skills/skills/access-review .opencode/skills/access-review
ln -s ../../packages/skills/skills/open-source-compliance .opencode/skills/open-source-compliance
```
**Option B — Claude Code bridge:** install
[`opencode-claude-code-bridge`](https://www.npmjs.com/package/opencode-claude-code-bridge)
to import Claude plugins and MCP configs into OpenCode.
Configure Probo MCP in `opencode.json` or global OpenCode MCP settings, then
authenticate. Invoke via the native `skill` tool (`access-review`).
### Cursor
1. Add Probo MCP in Cursor settings (HTTP URL: `${PROBO_BASE_URL}/mcp/v1`,
OAuth).
2. Copy or symlink skills into `.cursor/skills/`:
```bash
mkdir -p .cursor/skills
cp -r packages/skills/skills/access-review .cursor/skills/
```
Reference the skill in chat or add a Cursor rule pointing at the skill.
## Portable vs agent-specific paths
| Path | Portable? |
| --- | --- |
| `skills/<name>/SKILL.md` | ✅ Agent Skills standard |
| `skills/<name>/references/*.md` | ✅ Relative to skill directory |
| `.mcp.json` with `${PROBO_BASE_URL}` | ✅ Standard env var |
| `${CLAUDE_PLUGIN_ROOT}` | ❌ Claude Code only — avoid in skill bodies |
| `commands/*.md` | Claude Code slash commands only |
Skill bodies use **relative** `references/` paths so they work once the skill
directory is discovered, regardless of which agent loads it.
## npm package layout
```
@probo/skills/
.claude-plugin/plugin.json # Claude Code manifest
.claude-plugin/marketplace.json # Claude marketplace (npm)
.codex-plugin/plugin.json # Codex manifest
.agents/plugins/marketplace.json # Codex marketplace (package-local)
.mcp.json # Shared MCP wiring
skills/ # Shared skills (all agents)
commands/ # Claude Code commands only
```
Repo root (monorepo / `getprobo/probo` Git installs):
```
.claude-plugin/marketplace.json # Claude marketplace → packages/skills
.agents/plugins/marketplace.json # Codex marketplace → packages/skills
```