Skip to content

feat(marketplace): add the orpc plugin - #275

Merged
amondnet merged 1 commit into
mainfrom
amondnet/orpc
Sep 15, 2026
Merged

amondnet merged 1 commit into
mainfrom
amondnet/orpc

Conversation

@amondnet

@amondnet amondnet commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a new orpc plugin to the marketplace, bundling the four official oRPC skills from middleapi/orpc (MIT, maintained by the oRPC project itself).

The skills were installed via skills.sh — bunx skills add middleapi/orpc --skill <name> --agent universal — so they live under plugins/orpc/.agents/skills/ and are version-locked in plugins/orpc/skills-lock.json. No files were hand-copied, so bun run skills:update-locks keeps them current.

The four skills:

Skill Covers
orpc core os builder, routers, middleware/context, typesafe errors, RPCHandler serving, server- and client-side clients, TanStack Query, SSE streaming
orpc-contract contract-first design with @orpc/contract (oc / implement), sharing a contract between packages
orpc-openapi REST routes on procedures, OpenAPIHandler, Smart Coercion, OpenAPILink, OpenAPI spec generation, Scalar/Swagger reference
orpc-migrate tRPC → oRPC and oRPC v1 → v2 migrations

All four target oRPC v2 and explicitly warn that pretrained oRPC knowledge describes v1 — which is the main reason this plugin is worth shipping.

Changes

  • plugins/orpc/ (new) — 4 SKILL.md files, skills-lock.json, .claude-plugin/plugin.json (with "skills": "./.agents/skills/"), plus the multi-format-generated .codex-plugin/plugin.json, root plugin.json (Antigravity), and .cursor-plugin/plugin.json
  • .claude-plugin/marketplace.json — new entry with a relevance block (topic: "oRPC", manifestDeps matching "@orpc/<pkg>": in package.json)
  • .agents/plugins/marketplace.json, .cursor-plugin/marketplace.json — regenerated by bun scripts/cli.ts multi-format
  • release-please-config.json + .release-please-manifest.jsonplugins/orpc package at 1.0.0, with extra-files covering all four version-bearing manifests
  • README.md — entry under Built-in Plugins

Verification

  • claude plugin validate plugins/orpc → passed
  • claude plugin validate .claude-plugin/marketplace.json → passed (13 warnings, all on pre-existing entries; none for orpc)
  • relevance.manifestDeps regex tested against real dependency lines: matches "@orpc/server", "@orpc/client", "@orpc/tanstack-query"; does not match "trpc". The file pattern matches both POSIX and Windows package.json paths.

Note on scope

Per the repo's marketplace-sync rule, bun scripts/cli.ts multi-format rewrites all local plugins. It produced repo-wide churn from pre-existing drift (e.g. plugins/vue/plugin.json is committed at 1.1.0 but regenerates at 1.3.0), so that unrelated churn was reverted with git restore plugins/ and this commit is scoped to orpc only. That pre-existing drift across other plugins is still uncommitted and likely deserves a separate follow-up PR.

bun.lock was already modified before this work and was deliberately left out of the commit.

Related issue

None — this plugin addition was not tracked by an issue.

Checklist

  • PR title follows Conventional Commits
  • Tests added or updated, and the suite passes (bun run test) — no tests apply; plugin manifests are verified with claude plugin validate (see Verification)
  • Lint/format pass (bun run lint) — green (the turbo lint scope covers the JS/TS packages, not the markdown/JSON files changed here)
  • Documentation updated if behavior changed (README Built-in Plugins entry)
  • No breaking change, or a BREAKING CHANGE: note is included

Summary by cubic

Adds the orpc plugin to the marketplace, bundling the four official oRPC skills from middleapi/orpc. The skills target oRPC v2 and explicitly warn that pretrained oRPC knowledge describes v1, which is the main reason this plugin is worth shipping.

New Features

  • New plugins/orpc/ directory with four SKILL.md files, skills-lock.json, and plugin manifests for Claude, Codex, Cursor, and Antigravity.
  • Added marketplace entries with relevance signals to .claude-plugin/marketplace.json, .cursor-plugin/marketplace.json, and .agents/plugins/marketplace.json.
  • Added release-please config for plugins/orpc at 1.0.0 and a README entry.
  • Verified with claude plugin validate; all warnings are on pre-existing entries.

Note

  • bun scripts/cli.ts multi-format rewrites all local plugins; unrelated churn from pre-existing drift was reverted, but that drift remains uncommitted and likely deserves a separate follow-up.
  • bun.lock was left out of the commit.

Written for commit e501866. Summary will update on new commits.

Add the orpc plugin with four skills installed via skills.sh from
middleapi/orpc: orpc, orpc-contract, orpc-openapi, and orpc-migrate.

Wire the plugin into the Claude, Codex, and Cursor marketplaces,
release-please config and manifest, and the README.
@vercel

vercel Bot commented Sep 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
claude-code-plugins Ready Ready Preview Sep 15, 2026 11:51am UTC

Request Review

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@amondnet
amondnet marked this pull request as ready for review September 15, 2026 11:52

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new "orpc" plugin to the marketplace, adding its configuration across Claude, Codex, and Cursor plugin manifests, updating the release-please configuration, and adding the plugin's documentation in the README. It also installs the "orpc" skills (including "orpc", "orpc-contract", "orpc-migrate", and "orpc-openapi") under the ".agents/skills/" directory, managed by "skills-lock.json". Since there are no review comments to evaluate, I have no feedback to provide.

@github-actions

Copy link
Copy Markdown

🔍 Tessl Skill Review

plugins/orpc/.agents/skills/orpc-contract/SKILL.md

score

A lean, highly actionable reference with copy-paste-ready code for every sub-task and clear stage-based organization. Its main gap is the absence of explicit validation/verification checkpoints in the multi-stage workflow, which holds workflow clarity to the midpoint.

Full review details

Validation Checks

16/16 checks passed.

Review Details

Dimension Score Detail
conciseness ████░ 4/5 The body is dense and assumes competence, jumping straight to code without explaining what oRPC is, and each bullet carries a concrete technical rule that earns its place. It lands at 4 rather than 5 because the opening framing paragraph ('Contract-first oRPC splits an API into two artifacts...') and a few explanatory bullets could be trimmed further without losing clarity.
actionability █████ 5/5 Provides fully executable, copy-paste-ready code blocks for every common case — contract definition, implementation, RPC/OpenAPI clients, contract minification, npm SDK factory, and OpenAPI codegen config plus the 'npx @hey-api/openapi-ts' and 'tsdown --dts' commands — matching the level-5 anchor.
workflow clarity ███░░ 3/5 The body is sequenced by clear stages (Define → Implement → Consume → Ship → Generate), giving an implicit sequence, but there are no explicit validation or verification checkpoints (e.g. type-check the implementer against the contract, verify the shipped contract.json round-trips). No destructive batch operation triggers the hard cap, but the missing checkpoints fit the level-3 anchor better than level 4.
progressive disclosure ████░ 4/5 No bundle files exist (references/, scripts/, assets/ are absent), and the skill stays self-contained with a dedicated 'Full documentation' section that signals one-level-deep external references (orpc.dev pages and sibling skills) for detail beyond the overview. It is well-structured but the deferral of several in-topic details (OpenAPI routing, dedupe pattern, JsonifiedClient/Smart Coercion) to sibling skills keeps it just short of the level-5 anchor.

Suggestions:

  • Add explicit validation checkpoints to the implementation and shipping stages — e.g. after 'implementer.router({...})', run a type-check confirming handlers satisfy the contract, and after writing contract.json, verify it deserializes on the client before publishing.
  • Tighten the opening framing paragraph ('Contract-first oRPC splits an API into two artifacts...') and a few explanatory bullets to push conciseness toward the top anchor.
  • Consider bundling the full docs page list or a contract.json example into a references/ file so the in-skill overview can stay lean while keeping all navigation truly one level deep.

Description Review

Dimension Score Detail
specificity █████ 5/5 Names multiple concrete actions against specific APIs: 'defining the API shape with oc from @orpc/contract, implementing it with implement from @orpc/server, and consuming the contract from typesafe clients', plus 'sharing an API contract', 'generating a contract from an existing OpenAPI spec', and 'publishing a typed API client to npm' — comprehensive coverage matching the level-5 anchor.
completeness █████ 5/5 Explicitly states both what ('Design oRPC v2 APIs contract-first, defining... implementing... and consuming...') and when ('Use when a project depends on...') with concrete trigger phrases, matching the level-5 anchor that requires clearly answering both what and when.
trigger term quality █████ 5/5 The 'Use when' clause covers natural user phrasings with synonyms: 'a project depends on @orpc/contract', 'defining a contract with oc', 'implementing a contract with implement', 'sharing an API contract between server and client packages', 'generating a contract from an existing OpenAPI spec', and 'publishing a typed API client to npm' — comprehensive natural-term coverage.
distinctiveness conflict risk █████ 5/5 Occupies a clear niche (contract-first oRPC) and explicitly routes adjacent work away — 'for core builder, serving, and client work without a contract, use the orpc skill; for REST/OpenAPI exposure... use the orpc-openapi skill' — minimizing conflict risk as the level-5 anchor requires.

plugins/orpc/.agents/skills/orpc-migrate/SKILL.md

score

An efficient, highly actionable migration playbook with strong sequencing and explicit validation guidance. Its one structural weakness is that all detail lives in one SKILL.md with no local reference files, relying on external docs for the omitted mapping tables.

Full review details

Validation Checks

16/16 checks passed.

Review Details

Dimension Score Detail
conciseness █████ 5/5 Lean and information-dense with no padding about what oRPC or libraries are; the only meta-commentary ('Pretrained knowledge... is often wrong for v2') directly drives behavior rather than explaining basics Claude already knows.
actionability █████ 5/5 Copy-paste-ready code for toORPCRouter, the base file, fetch handler, client, and TanStack Query utils, plus a tRPC→oRPC concept-map table and concrete package/option renames covering the common migration cases.
workflow clarity █████ 5/5 Both migrations are numbered in explicit order with a verify-after-each-step rule, and the v1→v2 section specifies exactly which steps need typecheck/unit tests vs integration/e2e tests, providing clear validation checkpoints and a feedback loop for a batch/destructive operation.
progressive disclosure ████░ 4/5 Well-organized into clear sections with a dedicated 'Docs retrieval' block pointing one level deep to authoritative orpc.dev pages, deliberately offloading full mapping tables; held below 5 only because it is a single monolithic file with no in-skill bundle files to split detail into.

Suggestions:

  • Consider extracting the v1→v2 package-rename and option-rename tables into a local reference file (e.g. references/v1-v2-mapping.md) so the full mapping is available offline and the body can stay a lean overview.
  • The 'Audit silent behavior changes' bullets are dense; splitting them into a short checklist file would aid navigation and let the body summarize the highest-risk items.

Description Review

Dimension Score Detail
specificity █████ 5/5 Names both migration paths and concrete sub-actions — 'incremental wrapping via the @orpc/trpc integration or a full rewrite with the concept mapping' and 'package renames, breaking changes, and a safe order of operations' — giving comprehensive, specific coverage rather than vague language.
completeness █████ 5/5 Explicitly answers both 'what' (the two migrations and their mechanics) and 'when' (a concrete 'Use when...' trigger list), and adds a negative boundary ('Not for greenfield oRPC work... use the orpc skill').
trigger term quality █████ 5/5 The 'Use when...' clause packs in natural user phrases — 'migrate from tRPC to oRPC', 'convert or wrap a tRPC router', 'upgrade oRPC v1 to v2', 'fix oRPC v2 breaking changes', 'swap @trpc/* packages for @orpc/* equivalents' — with synonyms and package-pattern variants.
distinctiveness conflict risk █████ 5/5 Occupies a clear migration-only niche and explicitly disambiguates from the sibling 'orpc' skill for greenfield/new-feature work, minimizing wrong-skill trigger risk.

plugins/orpc/.agents/skills/orpc-openapi/SKILL.md

score

A strong, actionable reference body with executable examples and an explicit verification step, well-structured for navigation. It is slightly verbose in places and, lacking any bundle files, relies on external docs rather than internal progressive disclosure.

Full review details

Validation Checks

16/16 checks passed.

Review Details

Dimension Score Detail
conciseness ████░ 4/5 Dense and assumes Claude's competence — it never explains what OpenAPI or oRPC is — but a few explanatory sentences (e.g., the compact-mode illustration) could be trimmed, keeping it just short of fully lean.
actionability █████ 5/5 Multiple copy-paste-ready examples with real imports cover the common cases — routing with openapi() meta, OpenAPIHandler with SmartCoercionHandlerPlugin, OpenAPILink client, and OpenAPIGenerator with the reference plugin.
workflow clarity ████░ 4/5 Clear topic-sequenced sections with an explicit validation checkpoint ('Verify the wiring before declaring success: request /spec.json… and confirm the method, path, and status'), but the multi-task reference style lacks full feedback loops for each workflow.
progressive disclosure ████░ 4/5 Well-organized into labeled sections with one-level-deep references to external docs pages (llms.txt, per-page .md URLs) and sibling skills; no nested references. No bundle files exist, so splitting is N/A, leaving it just short of the ideal overview-plus-reference-file split.

Suggestions:

  • Trim illustrative prose (e.g., the compact-mode GET example sentence) to lift conciseness toward fully lean.
  • Add a brief feedback-loop note for spec generation (regenerate after metadata changes) to strengthen workflow_clarity beyond the single verification checkpoint.
  • Consider extracting the bracket-notation and paramsStyles/queryStyles detail into a references file so SKILL.md stays a tighter overview.

Description Review

Dimension Score Detail
specificity █████ 5/5 Lists multiple concrete actions tied to named APIs — 'openapi() metadata or .route with method, path, successStatus', 'OpenAPIHandler', 'OpenAPILink', 'OpenAPIGenerator', 'Smart Coercion', 'Scalar or Swagger docs with the OpenAPI Reference plugin' — giving comprehensive coverage.
completeness █████ 5/5 Explicitly answers both what ('Expose an oRPC router as a spec-compliant OpenAPI HTTP API') and when ('Use when a project depends on @orpc/openapi, or for defining REST-style routes…') with concrete trigger phrases.
trigger term quality ████░ 4/5 Good natural-term coverage a developer would say ('OpenAPI HTTP API', 'REST-style routes', '@orpc/openapi', 'Scalar or Swagger docs') with synonyms (3.2/3.1/3.0, Scalar/Swagger), but lacks file-extension-style variations, so it stops just short of comprehensive.
distinctiveness conflict risk █████ 5/5 Occupies a clear niche and explicitly disambiguates from siblings ('for contract-first work… use the orpc-contract skill; for plain RPC serving… use the orpc skill instead'), minimizing wrong-skill triggering.

plugins/orpc/.agents/skills/orpc/SKILL.md

score

A dense, highly actionable oRPC v2 reference with executable examples and useful pre-flight/typecheck checkpoints. It is slightly held back by inline time-sensitive version guidance and a monolithic single-file structure with no local progressive split.

Full review details

Validation Checks

16/16 checks passed.

Review Details

Dimension Score Detail
conciseness ████░ 4/5 Lean intro and tight, purposeful code blocks that mostly assume Claude's competence, but time-sensitive version/beta instructions sit outside any 'old patterns' section and a few explanatory clauses could be trimmed, so it is not the every-token-earns-its-place of anchor 5.
actionability █████ 5/5 Copy-paste-ready executable examples span every common case (procedures, router, middleware, errors, serving, calling, client error handling) plus concrete commands like 'npm ls @orpc/server' and 'npm install @orpc/server@beta'.
workflow clarity ████░ 4/5 Topic-ordered flow with real checkpoints ('Check what is installed before writing code', 'run the project's typecheck before declaring success'); not a destructive/batch skill so the cap-3 rule does not apply, but it reads as a reference rather than a linear workflow with explicit fix-retry feedback loops.
progressive disclosure ████░ 4/5 Well-sectioned single file with a clear end-of-doc map and one-level-deep external docs links, but no local bundle files exist and all content is inlined in one monolithic file rather than split, so it stops short of anchor 5.

Suggestions:

  • Move the version-detection and beta dist-tag instructions into a short 'Version & compatibility' or 'old patterns' subsection so time-sensitive content is isolated from the stable reference material.
  • Add an explicit validate-fix-retry feedback loop (e.g., typecheck fails -> fix types -> re-run typecheck -> only then proceed) for the testing/serve steps to push workflow_clarity toward 5.
  • Consider extracting the per-plugin and per-adapter detail into local reference files under references/ so the SKILL.md body can act as a leaner overview, improving progressive disclosure.

Description Review

Dimension Score Detail
specificity █████ 5/5 Enumerates many concrete actions (procedures via os builder, routers, middleware/context, ORPCError, RPCHandler serving, server/client clients, TanStack Query, SSE), giving comprehensive coverage rather than the minor gaps of anchor 4.
completeness █████ 5/5 Explicitly answers both 'what' (build/serve/call end-to-end typesafe APIs plus enumerated actions) and 'when' ('Use for any task in a project that depends on @orpc/* packages, even a one-procedure change') with concrete trigger phrases.
trigger term quality ████░ 4/5 Strong domain terms oRPC users actually say (@orpc/*, oRPC v2, TanStack Query, RPCHandler, SSE), but jargon-heavy and missing some softer synonyms; not the full synonym/extension breadth of anchor 5.
distinctiveness conflict risk █████ 5/5 Clear niche tied to @orpc/* and oRPC v2, and it actively routes adjacent tasks to sibling skills (orpc-openapi, orpc-contract, orpc-migrate), minimizing wrong-skill triggering.

To improve your score, point your agent at the Tessl optimization guide. Need help? Jump on our Discord.

Feedback

Report issues with this review at tesslio/skill-review, or send private feedback from your terminal with tessl feedback.

@amondnet
amondnet merged commit 4552054 into main Sep 15, 2026
11 checks passed
@amondnet
amondnet deleted the amondnet/orpc branch September 15, 2026 11:53
@greptile-apps

greptile-apps Bot commented Sep 15, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

The PR is not safe to merge until the skill layout is changed so the generated Codex plugin can expose its advertised functionality.

Fix All in Claude CodeFindings

  1. P1 Codex Skills Are Unavailable
Fix with agent prompt
### Issue 1
plugins/orpc/.claude-plugin/plugin.json:20
The plugin stores its only functionality under `./.agents/skills/`, but the multi-format generator only maps paths that normalize to `./skills/`. It therefore emits a Codex manifest that advertises the Skill capability without a `skills` path. Users who install `orpc` from the generated Codex marketplace will not have access to any of its four skills. Move the skills to the supported root `skills/` directory, reference `./skills/`, and regenerate the manifests.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

Adds an oRPC marketplace plugin containing four upstream-locked oRPC v2 skills, registers it across the Claude, Codex, and Cursor marketplaces, configures release automation, and documents installation. The Claude plugin is wired to the imported skill directory, but that directory layout is incompatible with the repository’s Codex manifest generator and leaves the generated Codex plugin without usable skills.

Reviews (1) · Last reviewed commit: "feat(marketplace): add the orpc plugin"

"openapi",
"typescript"
],
"skills": "./.agents/skills/"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Codex Skills Are Unavailable

The plugin stores its only functionality under ./.agents/skills/, but the multi-format generator only maps paths that normalize to ./skills/. It therefore emits a Codex manifest that advertises the Skill capability without a skills path. Users who install orpc from the generated Codex marketplace will not have access to any of its four skills. Move the skills to the supported root skills/ directory, reference ./skills/, and regenerate the manifests.

Prompt To Fix With AI
This is a comment left during a code review.
Path: plugins/orpc/.claude-plugin/plugin.json
Line: 20

Comment:
**Codex Skills Are Unavailable**

The plugin stores its only functionality under `./.agents/skills/`, but the multi-format generator only maps paths that normalize to `./skills/`. It therefore emits a Codex manifest that advertises the Skill capability without a `skills` path. Users who install `orpc` from the generated Codex marketplace will not have access to any of its four skills. Move the skills to the supported root `skills/` directory, reference `./skills/`, and regenerate the manifests.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Claude Code

@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant