Manage DTwo gateway YAML configuration and MCP server definitions: edit, validate, save draft, publish, deploy, and roll back. TRIGGER when: user says "add/remove/edit MCP server", "gateway config/YAML", "change gateway auth/JWKS/SSRF/CORS", "publish/revert gateway config", "deploy gateway" after a config change; or wants to inspect/list gateway versions. SKIP when: task is writing or explaining Rego (use dtwo-policy-rego); task is attaching/detaching policies on a pipeline or pinning policy versions (use dtwo-gateway-policy).
Create, validate, attach, publish, deploy, verify, and roll back DTwo policies and their pipeline attachments. This is the system-of-record skill: it owns the DTwo MCP tools for policy lifecycle (create, update, publish, revert) and pipeline lifecycle (attach, deploy, verify), and is responsible for confirming pipeline attachments before and after deployment. TRIGGER when: user says "create/add a policy", "modify/update a policy", "block/allow/redact something", "attach/detach policy", "set/update pipeline", "publish/pin policy version", "deploy gateway" after a policy change. Always pair with dtwo-policy-rego for the Rego authoring/modification step. SKIP when: task is purely *explaining* existing Rego with no save/attach/deploy intent (use dtwo-policy-rego alone); task is editing gateway YAML or MCP server entries (use dtwo-gateway-config).
Generate, modify, explain, and debug Rego policy code for the DTwo MCP Gateway (ingress and egress), including the input schema, allow/deny/transform patterns, and debugging techniques. TRIGGER when: user asks to write/modify/explain/debug a Rego policy, says "block/allow/redact/transform" a tool call or response, mentions OPA, package paths, `input.payload`, `default allow`, or pastes Rego for review; also when diagnosing blanket denies or transform conflicts. Pair with dtwo-gateway-policy whenever the resulting Rego must be saved, attached, or deployed. SKIP when: task is policy CRUD or pipeline attachment that does not change Rego (use dtwo-gateway-policy alone); task is general OPA usage outside the MCP Gateway; task is editing gateway YAML (use dtwo-gateway-config).
External network access
Connects to servers outside your machine
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
This repo is a Claude Code plugin marketplace. Today it ships one plugin — dtwo — which bundles the DTwo MCP server connection and the gateway/policy/Rego skills for managing DTwo gateways.
If you're a customer looking to install or use the plugin, jump to dtwo/README.md. The rest of this README documents the layout and conventions of the repo for maintainers and anyone adding another plugin to the marketplace.
plugins/
├── .claude-plugin/
│ └── marketplace.json # marketplace manifest — lists every plugin in this repo
├── dtwo/ # the dtwo plugin
│ ├── .claude-plugin/
│ │ └── plugin.json # plugin manifest (name, version, metadata)
│ ├── .mcp.json # MCP servers this plugin contributes (dtwo, HTTP + OAuth)
│ ├── skills/ # auto-discovered skills (each in its own dir with SKILL.md)
│ │ ├── dtwo-gateway-config/SKILL.md
│ │ ├── dtwo-gateway-policy/SKILL.md
│ │ └── dtwo-policy-rego/SKILL.md
│ └── README.md # end-user plugin docs
└── README.md # this file
A marketplace is a git repo whose root contains .claude-plugin/marketplace.json. The manifest lists one or more plugins, each pointing at a subdirectory of the same repo (or a remote source). Customers add the marketplace once with:
/plugin marketplace add <owner>/<repo>
…then install individual plugins from it with:
/plugin install <plugin>@<marketplace>
Each plugin in turn is a directory laid out like this:
| Path | Required | What it does |
|---|---|---|
.claude-plugin/plugin.json | yes | Plugin manifest (name, version, metadata). |
.mcp.json | optional | MCP servers the plugin registers when enabled. |
skills/<name>/SKILL.md | optional | Auto-discovered skills. One directory per skill, file must be SKILL.md. |
commands/*.md | optional | Auto-discovered slash commands. |
agents/*.md | optional | Auto-discovered subagents. |
hooks/hooks.json | optional | Event hooks (PreToolUse, Stop, etc.). |
Auto-discovery scans these default paths automatically. Custom paths can be set in plugin.json but aren't needed for the standard layout.
The dtwo plugin uses only skills/ and .mcp.json — everything else is omitted.
Create a new directory at the repo root, e.g. dtwo-foo/.
Add dtwo-foo/.claude-plugin/plugin.json with at minimum a name field.
Add the plugin's components (skills, .mcp.json, etc.) under that directory.
Add an entry to .claude-plugin/marketplace.json:
{
"name": "dtwo-foo",
"source": "./dtwo-foo",
"description": "...",
"version": "0.1.0"
}
The source string must start with ./ and point at a subdirectory — bare "." is rejected by the schema.
Customers will then install it alongside the existing plugin with /plugin install dtwo-foo@dtwo.
The dtwo-gateway-config skill's SKILL.md carries a ### Schema Digest subsection between sentinel markers (<!-- BEGIN SCHEMA DIGEST --> / <!-- END SCHEMA DIGEST -->) that is generated from schema-reference.json — do not edit it by hand.
Why inline: production Claude Code does not auto-load a skill's references/ directory; only SKILL.md is in the cached system prompt. To get field-level schema grounding to real users, the digest must live inline in SKILL.md.
To regenerate after a schema bump (or to confirm the digest is in sync):
# Refresh the vendored schema from the d2 source of truth, then regenerate
cp <path>/d2/packages/libs/utils/schema-reference.json dtwo/skills/dtwo-gateway-config/schema-reference.json
node scripts/generate-schema-digest.mjs
git diff dtwo/skills/dtwo-gateway-config/SKILL.md
# CI / pre-commit guardrail — exits 1 if SKILL.md is stale relative to the vendored schema
node scripts/generate-schema-digest.mjs --check
Custom paths work too: node scripts/generate-schema-digest.mjs --schema=PATH --skill=PATH.
The generator is dependency-free (Node ESM, single file, ~280 LOC) so it runs anywhere Node 17+ is available.
npx claudepluginhub dtwoai/plugins --plugin dtwoComprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses
Develop, test, build, and deploy Godot 4.x games with Claude Code. Includes GdUnit4 testing, web/desktop exports, CI/CD pipelines, and deployment to Vercel/GitHub Pages/itch.io.
Access thousands of AI prompts and skills directly in your AI coding assistant. Search prompts, discover skills, save your own, and improve prompts with AI.
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.
Reliable automation, in-depth debugging, and performance analysis in Chrome using Chrome DevTools and Puppeteer