Rail-Connector-MCP: Skill for Codex

.agents/skills/rail-reviewer/SKILL.md

rail-reviewer is a skill for Codex from SNComrade/Rail-Connector-MCP. It costs 73 tokens per session (3,203 once invoked), scanned B, original, MIT.

A procedure for asking Claude to independently review code or repository work through Rail Connector MCP, then checking Claude's claims against the local project.

In plain words
What is it for?
Running read-only code, security, performance, implementation, or final-quality reviews and producing a verified review report.
Why use it?
It provides a second opinion while keeping review conclusions grounded in the actual branch, files, and tests.

Skill for Codex

Written for Codex: agents/openai.yaml present. Also seen: names the NotebookEdit tool; mentions Claude Code; installed under .agents/ (shared by several agents).

This is SNComrade/Rail-Connector-MCP's own configuration. It tells Codex how to work on Rail-Connector-MCP itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything Rail-Connector-MCP configures →

Reuse

Borrowing it

Nothing to install: this file belongs to SNComrade/Rail-Connector-MCP. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/SNComrade/Rail-Connector-MCP/main/.agents/skills/rail-reviewer/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/SNComrade/Rail-Connector-MCP

Made for: Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for rail-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/skills/sncomrade/rail-connector-mcp/rail-reviewer/github.svg)](https://agentmods.dev/skills/sncomrade/rail-connector-mcp/rail-reviewer)
Your own site
<a href="https://agentmods.dev/skills/sncomrade/rail-connector-mcp/rail-reviewer"><img src="https://agentmods.dev/badge/skills/sncomrade/rail-connector-mcp/rail-reviewer/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for rail-reviewer

Your own site · 80×15
<a href="https://agentmods.dev/skills/sncomrade/rail-connector-mcp/rail-reviewer"><img src="https://agentmods.dev/badge/skills/sncomrade/rail-connector-mcp/rail-reviewer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 73 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,203 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00073 $0.03203
Opus 5.5 $0.00029 $0.01281
Sonnet 5.5 $0.00015 $0.00641
Haiku 4.5 $0.00007 $0.00320

Measured 12d ago against content hash dd54d82c24dc, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade B, and why

rail-reviewer scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Asks the agent to reveal its instructionsmediumSystem prompt leakage

Directions to print, repeat or translate the system prompt extract configuration the operator did not intend to expose.

keeps the environment it was launched with, so an older launch can still show prompt suggestions, which block prompts (`active_input_not_empty`) and
.agents/skills/rail-reviewer/SKILL.md · 214 lines

How it starts

The opening of the file, as written. The whole thing — 214 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Rail Connector Reviewer

Use Claude as an independent reviewer, then verify its claims locally. Claude output is evidence, not authority.

Rules

  • Use the target project's real same-OS cwd, not this skill repo unless this MCP itself is under review.
  • If MCP tools are unavailable, report that a fresh Codex task or restart is needed. Never imply that Claude reviewed something when it did not.
  • Ground branch, status, diff, relevant code, docs, and tests before prompting Claude.
  • Default report-only reviews to permissionMode: "dontAsk" when the installed CLI advertises it, pass disallowedTools: ["Edit", "Write", "NotebookEdit"], and include explicit no-edit constraints. dontAsk denies new permission requests while allowing read-only inspection. Use plan only as a compatibility fallback; never approve implementation from a report-only review. Report-only is verified by pre/post repository evidence; it is not an operating-system sandbox. Constrain shell use to inspection and use a read-only copy when hard isolation matters.
  • tools, allowedTools, and disallowedTools constrain built-in Claude tools only. MCP and connector tools can remain available; the current MCP does not offer a verified strict MCP-config roster. Inspect the effective roster when possible and do not describe the built-in deny list as hard connector isolation.
  • Leave trustWorkspace false unless the user explicitly authorizes trust after project configuration and hooks are inspected.
  • Honor an explicit user request for Ultracode with ultracode: true, confirmUltracode: true, and no ordinary effort. Check capability provenance and calibrated probe exit status plus environment blockers before launch, treating probe timeout or termination as inconclusive, then report posture.ultracodeAssessment without promoting xhigh alone to confirmed Ultracode. Keep the persisted child launchEnvironment separate from currentMcpEnvironment when a review reconnects after an MCP refresh. advertisedAsEffort: false or helpListsUltracode: false means help text is silent, not that the launch is unavailable. Read ultraEffortAttachment.active, lifecycle, and historyCoverage: a latest enter is active, a later exit is inactive, and a skipped or partial range is unknown until a later complete transition restores current state. Historical coverage remains partial after recovery. These attachments authenticate client-side transitions, not workflow execution. Inspect attentionStatus; a blocking environment, conflicting effort, or terminal-rejection conflict takes precedence without erasing lifecycle evidence.
  • Honor an explicit user request to test or use bypass only when capability inspection reports policy enabled and the call includes confirmBypassPermissions: true. Do not independently elevate and do not silently downgrade an explicit request.
  • If a review uses native-Windows submit_prompt pasteMode: "keyword" (only on an explicit user request), keyword mode needs an empty composer even with force: true; a draft (or a suggestion that cannot be told apart from one) or a paste placeholder returns preflight_blocked (active_input_not_empty or paste_pending, forceRefused: true when force was requested) and nothing is sent. If EPASTEMODE leaves the generation recovery-only (status shows recoveryOnly: true), do not retry there: capture it, stop it with the generationId and startedAtMs from status as expectedGenerationId and expectedStartedAtMs, adding force: true only when that stop returns stop_blocked and the capture shows the cause (such as leftover keyword input or a partly submitted turn), then start a new review session.
  • A keyword workflow review under dontAsk needs the Workflow tool allowed at launch. The allowance verified live is tools: ["Workflow"] plus allowedTools: ["Workflow"], in a run whose workers used no tools. Note that tools: ["Workflow"] leaves Workflow as the session's only built-in tool, so a review that must read code has to list read tools such as Read, Grep and Glob in tools too (and keep them out of disallowedTools); that wider list, allowedTools alone, and what workers can do under it are not verified. Without the allowance Claude reports the Workflow call as denied and no workflow runs (seen live). This MCP sets tool lists only at launch, so a running review session without the allowance needs a replacement once it is idle. In default mode, Claude's documentation says Claude asks before the workflow runs (not verified through this MCP), and the MCP may not recognize that prompt as approval_required (not verified); capture before acting.
  • Prefer submit_prompt and wait_for_claude_turn. Use capture for attention states, not as the primary final-report parser.
  • Keep waiting while workflowPending is true even if an assistant completion record is already present. Identity-bound evidence releases only its own tracked launch: a direct terminal record with the matching run, a completed TaskOutput retrieval (older CLIs; 2.1.289 has no such tool), Claude's own task notification with a terminal status (completed, failed, killed, or an older word; blocked or any other status stays pending), or the per-conversation workflow snapshot (fresh managed native-Windows conversations only). A current bound interruption clears the tracked set. Worker results, an end turn, an idle composer, or a pending counter alone never release it. Do not submit follow-up text, rename, replace, or ordinarily stop a session blocked with reason workflow_pending. On CLI 2.1.289 the Waiting for N dynamic workflows to finish row stays on screen after the workflow ends; a fully and certainly observed log that has seen the launch decides instead, but with workflowObservationCoverage: "head_tail", or before the log has seen a launch, the row still holds pending work. If it stays pending after Claude shows the workflow finished, confirm that in Claude, check that terminalState is otherwise idle and the composer is empty, then, with authorization, repeat the blocked submit_prompt, rename_claude_session, or stop_remote_control call with force: true (a replacement uses forceKillExisting: true; wait_for_claude_turn takes no force) and report the returned forceUsed, workflowInterrupted, or forcedPastReason as a forced recovery.
  • Treat workflowObservationUncertain: true as fail-closed pending evidence. A skipped session-log middle invalidates head-only current posture. A later explicit workflow counter or bound interruption can restore current-state certainty, but a counter alone never clears known pending workflows, and a head_tail observation cannot earn workflow-snapshot completion.
  • Read terminalState independently from the combined state; active workflow evidence may make the latter busy without proving that Claude's terminal is busy. When workflow pending clears, historical evidence should not remain in workflowPendingEvidence.
  • A tool_use record is not a final report. Check textTruncated, textSha256, and textCharacters before synthesizing an unusually large review. Use get_claude_result with the returned resultId until hasMore is false; treat resultId as an opaque record identity and verify the separate textSha256 content digest instead of treating the preview as complete.
  • Remote Control web may label the underlying xhigh setting Extra while UltraCode is active. A session-bound web Extra is compatible presentation, not confirmation or conflict. On an idle, empty composer, /effort ultracode is current-setting evidence but may change posture and does not prove launch provenance. Use a substantive turn, not a trivial prompt, when workflow activity is part of the review evidence.
  • Verify Claude's file paths, line references, commands, factual claims, and severity against local evidence before synthesis.
  • Default to one Claude reviewer with no delegated workflow. When parallel review is explicitly authorized, copy any user-supplied bounds into the prompt. Without supplied bounds, allow at most 3 workflow agents, one pass, no recursive delegation, 5 findings, 10 minutes, and 200k aggregate tokens; stop and synthesize when any bound is reached.

Read the full file on GitHub · 214 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago Changed · +85 lines scan A → B dd54d82c24dc
  2. 1mo ago Changed · +19 lines ee6868375e12
  3. 2mo ago First seen · 110 lines · 73 tokens per session scan A d06d9ca84cb5

Subscribe to this mod's changes

rail-reviewer is a skill published in the GitHub repository SNComrade/Rail-Connector-MCP (0 stars, last pushed 4d ago), licensed MIT. It adds 73 tokens to every session and 3,203 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it B with 1 finding (asks the agent to reveal its instructions). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

pr-comments

Fetch and display GitHub PR review comments for the current branch.

warpdotdev/warp · 16 tokens

remarc

Manage Remarc session comments and contextual feedback. Use when the user mentions Remarc sessions, comments, handoff, triage, review, addressing, resolving, status updates, or summaries.

metedata/Remarc · 41 tokens

adversarial-verify

Use after completing any substantive piece of work (code change, analysis, document, configuration, answer to a hard question) and BEFORE presenting it as done. Switches you from author to attacker - you try to refute your own work and only present it if it survives. Do not skip because the work "looks clean"…

Hawkynt/ClaudeCodePortable · 82 tokens

swift-concurrency-pro

Reviews Swift code for concurrency correctness, modern API usage, and common async/await pitfalls. Use when reading, writing, or reviewing Swift concurrency code.

jacklandrin/OnlySwitch · 35 tokens

create-skill

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.

warpdotdev/warp · 64 tokens

figma-create-design-system-rules

Generates custom design system rules for the user's codebase. Use when user says "create design system rules", "generate rules for my project", "set up design rules", "customize design system guidelines", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server…

warpdotdev/warp · 71 tokens