MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
A skill your agent uses when authoring a rig spec member or rig expand payload that needs to start a new managed seat from a prior runtime conversation source — sessionsource: { mode: fork, ref: {…
$ npx skills add mvschwarz/openrig --skill session-source-fork -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mvschwarz/openrig session-source-fork --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mvschwarz/openrig.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/_canonical/core/session-source-fork .claude/skills/session-source-fork && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "session-source-fork" agent skill from https://github.com/mvschwarz/openrig/tree/main/skills/_canonical/core/session-source-fork into .claude/skills/session-source-fork/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-source-fork", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mvschwarz/openrig/tree/main/skills/_canonical/core/session-source-forkType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mvschwarz/openrig --skill session-source-fork -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mvschwarz/openrig session-source-fork --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvschwarz/openrig.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/_canonical/core/session-source-fork .agents/skills/session-source-fork && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "session-source-fork" agent skill from https://github.com/mvschwarz/openrig/tree/main/skills/_canonical/core/session-source-fork into .agents/skills/session-source-fork/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-source-fork", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvschwarz/openrig --skill session-source-fork -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mvschwarz/openrig session-source-fork --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvschwarz/openrig.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/_canonical/core/session-source-fork .cursor/skills/session-source-fork && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "session-source-fork" agent skill from https://github.com/mvschwarz/openrig/tree/main/skills/_canonical/core/session-source-fork into .cursor/skills/session-source-fork/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-source-fork", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mvschwarz/openrig.git --path skills/_canonical/core/session-source-fork--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mvschwarz/openrig --skill session-source-fork -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mvschwarz/openrig session-source-fork --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvschwarz/openrig.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/_canonical/core/session-source-fork .gemini/skills/session-source-fork && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "session-source-fork" agent skill from https://github.com/mvschwarz/openrig/tree/main/skills/_canonical/core/session-source-fork into .gemini/skills/session-source-fork/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-source-fork", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mvschwarz/openrig session-source-forkInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mvschwarz/openrig --skill session-source-fork -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mvschwarz/openrig.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/_canonical/core/session-source-fork .github/skills/session-source-fork && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "session-source-fork" agent skill from https://github.com/mvschwarz/openrig/tree/main/skills/_canonical/core/session-source-fork into .github/skills/session-source-fork/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-source-fork", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvschwarz/openrig --skill session-source-fork -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mvschwarz/openrig session-source-fork --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvschwarz/openrig.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/_canonical/core/session-source-fork .opencode/skills/session-source-fork && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "session-source-fork" agent skill from https://github.com/mvschwarz/openrig/tree/main/skills/_canonical/core/session-source-fork into .opencode/skills/session-source-fork/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-source-fork", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
session-source-forkA skill your agent uses when authoring a rig spec member or rig expand payload that needs to start a new managed seat from a prior runtime conversation source — sessionsource: { mode: fork, ref: {…
Session Source Fork is an agent skill from mvschwarz/openrig. Use when authoring a rig spec member or rig expand payload that needs to start a new managed seat from a prior runtime conversation source — sessionsource: { mode: fork, ref: { kind, value } }. v1 supports mode: fork with ref.kind: nativeid for Claude and Codex. The new seat persists a NEW post-fork token; the parent token is NEVER written onto the new seat. NOT for restoring an existing seat or for artifact-backed mental-model rebuild.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows. The repository describes itself as: Build your own network of agents from Claude Code, Codex and Pi: persistent teams with roles, shared context and owned work. The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit a7fed63. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
claudecodexFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Session Source Fork loads about 2.2k tokens when it runs. Until then it costs about 118 tokens; SKILL.md has 1,026 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mvschwarz/openrig at commit a7fed63, republished under its Apache-2.0 licence (© mvschwarz). 1,026 words, ~2,249 tokens.
.claude/skills/session-source-fork/SKILL.md (or your agent's skills folder).session_source is a member-level OpenRig field that declares how a
newly-launched managed seat should derive its initial conversation
continuity from a prior runtime conversation source.
v1 supports one mode: fork — start a new managed seat from a
prior native runtime conversation source without claiming the original
seat continued.
The schema is runtime-neutral; implementation is runtime-specific (Claude and Codex have their own native fork commands).
rig expand payload with session_sourcefork vs rebuild vs resume vs fresh for a new seatseat-continuity-and-handover skillmode: rebuild (see seat-continuity-and-handover for the rebuild surface) — do NOT collapse fork into artifact-backed reentry; the distinction is load-bearing.terminal. Terminal runtime rejects session_source.members:
- id: reviewer-2
runtime: claude-code # or "codex"; not valid on terminal
agent_ref: specs/agents/reviewer.yaml
profile: reviewer
cwd: .
session_source:
mode: fork
ref:
kind: native_id # v1 fork mode supports native_id only
value: "0b0165d7-cb4d-4650-90de-15c0a1ede9e6"Rules:
mode v1 only valid value: fork.ref.kind v1 supports native_id only. Schema rejects artifact_path, name, last, and artifact_set pre-launch with explicit deferred/weaker/wrong-mode error messages (see packages/daemon/src/domain/rigspec-schema.ts validateSessionSourceFork). Adapter-level refusal exists as defensive handling but should not be reachable in v1 because schema rejects first.value required for ref.kind: native_id in v1 (the only schema-accepted kind). Future-state value semantics for artifact_path / name / last are not active in v1 because schema rejects those kinds pre-launch.rig expand accepts the same shape so dynamically-added members can carry session-source attribution.The primitive does NOT introduce a new top-level command. It flows through existing rig spec and expansion pathways.
session_source is a launch-time input, not a long-lived stateful field:
ref against the runtimeOnce realized, session_source is essentially history. Restoring the
seat later is restore of the new seat, not re-fork-from-parent.
native_id. Action: emit error naming runtime + missing id; do NOT silently launch fresh. (Future-state note: when artifact_path is supported in a follow-up slice, it could become a candidate fallback for Claude; in v1 schema rejects artifact_path pre-launch so no fallback path exists.)ref.kind: artifact_path becomes schema-accepted. v1 schema rejects this kind pre-launch.native_id kinds upfront. Adapter-level refusal exists as defensive handling but is not reached in v1.claude --resume <parent> --fork-session or codex fork <id>) returned non-zero or hung. Preserve runtime stderr; do not record new seat as launched; do not write parent token onto seat.The primitive must NOT report "restored the original agent" or "resumed the original seat" or "snapshot." The correct framing is "forked from source session" / "started from prior conversation source."
Check the actual user-facing outcome and persisted identity; wording alone does not prove the intended continuity was created.
rig fork <source-session> has since shipped as a thin convenience verb that COMPOSES the existing agent-image fork path — this honors the boundary; it is not a divergent primitive. The rule now reads: no NEW fork mechanics outside the spec / expansion / agent-image pathways.)session_source to AgentSpec. It's a member-level launch-time input.restore semantics. session_source creates a seat; restore continues an existing managed seat.| Runtime | Command shape |
|---|---|
Claude (mode: fork + ref.kind: native_id) | claude --resume <parent-id> --fork-session |
Codex (mode: fork + ref.kind: native_id) | codex... fork <parent-id> |
| Terminal | Rejected at schema level |
Mutual exclusion between resumeToken (restore path) and forkSource
(fork path) is enforced at three layers in the daemon.
| Outcome | When |
|---|---|
forked | Fork succeeded; new seat has new native token; parent never written onto new seat |
fresh | Fresh launch (no session_source declared) |
resumed | Restore of existing managed seat |
failed | Resolution or fork failed |
For seat handover over fork composition, the binding outcome is
independent (see seat-continuity-and-handover skill).
A source checkout and the running daemon can contain different implementations. Before an authorized fork, check the target daemon's build identity and support for the requested source. A source or isolated test establishes only that cut's behavior; it does not prove the live runtime uses it.
Record the actual parent history, new seat identity, new continuity token and independent binding outcome. Preserve errors and incomplete results rather than reporting a fresh launch or restored original seat as a successful fork. These checks confer no authority to launch, replace or retire a live seat.
Shipped at openrig c7b6df1 (2026-04-30):
session_source faithfully)rig expand member-inputnative_idresume_token is the NEW post-fork token; parent token NEVER written)continuityOutcome: forked)Deferred:
artifact_path mode (schema currently refuses with deferred message)parent_native_id / created_via for queryable RSI consumer)cross-host-rig-commandsseat-continuity-and-handover skill — sibling occupant-creation primitives (resume / fork / rebuild / fresh) + seat-binding (handover composes with fork)agent-starters skill — composes session_source fork into named reusable starting pointscross-host-rig-commands skill — multi-host fork (deferred)© mvschwarz, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/_canonical/core/session-source-fork of mvschwarz/openrig.
Open the folder on GitHubat commit a7fed63
Session Source Fork next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Session Source Fork this skillmvschwarz/openrig | 5.5k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server Builderanthropics/skills | 180k | 62 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Hook Development for Claude Code Pluginsanthropics/claude-plugins-official | 37k | 11 repos | ~4.1k | Automated safety check: Notes | Apache-2.0 | |
| Using Superpowersfarm-fe/farm | 5.6k | 34 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Executing Plans Inlineobra/superpowers | 296k | 2 repos | ~5.1k | Automated safety check: Pass | MIT | |
| Claude Code Agent Developmentanthropics/claude-plugins-official | 37k | 8 repos | ~2.8k | Automated safety check: Pass | Apache-2.0 |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
anthropics/claude-plugins-official
Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.
farm-fe/farm
A skill your agent uses when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
obra/superpowers
Has the agent carry out an implementation plan itself, task by task in the current session, keeping a ledger, proving each step with a test and ending with one whole-branch review.
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
Azure/azqr
Create new skills, modify and improve existing skills, and measure skill performance.
mvschwarz/openrig
Walks an agent through upgrading the OpenRig CLI and daemon one observed step at a time, keeping live seats alive and reconciling managed plugin files.
mvschwarz/openrig
Helps set up a continuing agent software team for a real repository with OpenRig, choosing between manual work, queue handoffs and an explicit Workflow.
mvschwarz/openrig
Separates a stable agent seat's identity from its changing occupant, and records honest, two-part provenance whenever one occupant replaces another.
mvschwarz/openrig
Loads one section of a Markdown file by its path#h2-slug address with a bundled resolver script, for use outside OpenRig's context library.
mvschwarz/openrig
A skill your agent uses when checking the health of this rig's HashiCorp Vault or writing, reading, listing, deleting or explaining its secrets.
mvschwarz/openrig
Re-grounds a long-running agent in the current product outcome by running a path-based trace to the root of its topology and work trees.
Categories
A skill your agent uses when authoring a rig spec member or rig expand payload that needs to start a new managed seat from a prior runtime conversation source — sessionsource: { mode: fork, ref: {…. Session Source Fork is an agent skill from mvschwarz/openrig. Use when authoring a rig spec member or rig expand payload that needs to start a new managed seat from a prior runtime conversation source — sessionsource: { mode: fork, ref: { kind, value } }.
Session Source Fork fits situations like: authoring a rig spec member; rig expand payload that needs to start a new managed seat from a prior runtime conversation source — sessionsource: { mode: fork.
Run `npx skills add mvschwarz/openrig --skill session-source-fork -a claude-code`. Or copy the skill folder (skills/_canonical/core/session-source-fork in mvschwarz/openrig) into .claude/skills/session-source-fork in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mvschwarz/openrig --skill session-source-fork -a codex`. Or copy the skill folder (skills/_canonical/core/session-source-fork in mvschwarz/openrig) into .agents/skills/session-source-fork in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mvschwarz/openrig --skill session-source-fork -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/session-source-fork, .gemini/skills/session-source-fork, .github/skills/session-source-fork and .opencode/skills/session-source-fork in your project.
Going by SKILL.md and its folder, Session Source Fork needs the command-line tools its instructions call (claude and codex).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Session Source Fork is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Session Source Fork: MCP Server Builder (anthropics/skills, 180k stars), Hook Development for Claude Code Plugins (anthropics/claude-plugins-official, 37k stars), Using Superpowers (farm-fe/farm, 5.6k stars) and Executing Plans Inline (obra/superpowers, 296k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mvschwarz (a GitHub user) maintains it in mvschwarz/openrig, which has 5,542 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 7, 2026.
Source: mvschwarz/openrig on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.