Always Compare
ai-analyst-lab/ai-analyst
Never present a metric or number in isolation; anchor every number to a comparison (prior period, benchmark, or another segment) or state that none is available.
Always read this skill when the user mentions "rp" or "repoprompt", or before accessing a repository outside the current RepoPrompt workspace.
$ npx skills add w-winter/dot314 --skill rp -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install w-winter/dot314 rp --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/w-winter/dot314.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/rp .claude/skills/rp && 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 "rp" agent skill from https://github.com/w-winter/dot314/tree/main/skills/rp into .claude/skills/rp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rp", 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/w-winter/dot314/tree/main/skills/rpType 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 w-winter/dot314 --skill rp -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install w-winter/dot314 rp --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/w-winter/dot314.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/rp .agents/skills/rp && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "rp" agent skill from https://github.com/w-winter/dot314/tree/main/skills/rp into .agents/skills/rp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rp", 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 w-winter/dot314 --skill rp -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install w-winter/dot314 rp --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/w-winter/dot314.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/rp .cursor/skills/rp && 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 "rp" agent skill from https://github.com/w-winter/dot314/tree/main/skills/rp into .cursor/skills/rp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rp", 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/w-winter/dot314.git --path skills/rp--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 w-winter/dot314 --skill rp -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install w-winter/dot314 rp --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/w-winter/dot314.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/rp .gemini/skills/rp && 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 "rp" agent skill from https://github.com/w-winter/dot314/tree/main/skills/rp into .gemini/skills/rp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rp", 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 w-winter/dot314 rpInstalls 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 w-winter/dot314 --skill rp -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/w-winter/dot314.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/rp .github/skills/rp && 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 "rp" agent skill from https://github.com/w-winter/dot314/tree/main/skills/rp into .github/skills/rp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rp", 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 w-winter/dot314 --skill rp -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install w-winter/dot314 rp --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/w-winter/dot314.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/rp .opencode/skills/rp && 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 "rp" agent skill from https://github.com/w-winter/dot314/tree/main/skills/rp into .opencode/skills/rp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rp", 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.
rpAlways read this skill when the user mentions "rp" or "repoprompt", or before accessing a repository outside the current RepoPrompt workspace.
Rp is an agent skill from w-winter/dot314. Always read this skill when the user mentions "rp" or "repoprompt", or before accessing a repository outside the current RepoPrompt workspace. Covers workspace discovery, binding, root verification, and workspace hygiene.
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0c6bbc7. 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:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
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.
Rp loads about 3.4k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 1,630 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 w-winter/dot314 at commit 0c6bbc7, republished under its MIT licence (© w-winter). 1,630 words, ~3,437 tokens.
.claude/skills/rp/SKILL.md (or your agent's skills folder).rp) for Within-Repository DiscoveryThese instructions override generic tool guidance for exploring repositories.
rp is the default for repo-scoped work. Usage:
rp({ windows: true }) → rp({ bind: { window: N } })rp({ call: "<tool>", args: { ... } })RepoPrompt (macOS app) organizes state as:
MCP tools operate directly against this state, but in Pi you invoke them through rp. Bind to the correct window with rp({ bind: { window: N } }), then call tools via rp({ call: "<tool>", args: { ... } }).
Mandatory routing check: Do not infer availability of any repo of interest from workspace/window titles; workspaces may have more roots available than the title implies. Before any repo-scoped work, confirm the target repo/root is (or isn't) present by checking workspace roots (e.g. get_file_tree). If it's not confirmed, pause and resolve routing (bind the right window/tab or open the repo).
After RepoPrompt routing, binding, and target-root confirmation are complete, inspect the ready set before every repository exploration call.
rp read/search call each.read_file, file_search, get_file_tree, get_code_structure, and independent read-only git queries.When a task involves a repository that isn't loaded in any existing RepoPrompt window:
manage_workspaces action="add_folder" to add unrelated repositories to an existing workspacemanage_workspaces action="create" name="<repo-name>" folder_path="<path>" open_in_new_window=trueRationale: Keep workspaces coherent; mixing unrelated repos clutters selection and context.
Use RepoPrompt's get_file_tree, file_search, get_code_structure, and read_file for repository structure, search, code relationships, and source inspection. Do not substitute shell or Pi-native filesystem tools unless rp is unavailable after one retry.
Never switch workspaces in an existing window unless the user explicitly says it's safe. Switching clobbers selection, prompt, and context. Use open_in_new_window=true.
Keep context intentional: select only what you need, prefer codemaps for reference files, use slices when only a portion matters.
| Task | MCP Tool | Notes |
|---|---|---|
| Repo structure | get_file_tree type="files" [mode="folders"] [path="..."] [max_depth=N] | gitignore-aware |
| Code search | file_search pattern="..." [path="..."] [mode="both|path|content"] [filter={...}] [context_lines=N] | regex auto-detected by default |
| API signatures | get_code_structure [paths=["dir/"]] [expand="uses|used_by|both"] [depth=N] [signatures=true] [size="small|medium|large"] | omit paths to inspect the current selection |
| Context curation | manage_selection op="get|set|add|remove|clear" [view="summary|files|content|codemaps"] | selection drives oracle/review context |
| Snapshot/export | workspace_context [include=["prompt","selection","code","tree","tokens"]] or workspace_context op="export" | verify or export current context |
| Reading files | read_file path="..." [start_line=N] [limit=N] | 120-200 line chunks |
| Code editing | apply_edits path="..." search="..." replace="..." [all=true] [verbose=true] | supports multi-edit, rewrite |
| File ops | file_actions action="create|move|delete" path="..." | absolute path for delete |
| Planning/review | oracle_send mode="chat|plan|review" [new_chat=true] [chat_id="..."] [export_response=true] | uses the current tab/context; exporting returns oracle_export_path |
| Oracle helpers | oracle_utils op="models|sessions" [limit=N] [context_id="..."] [scope="workspace|tab"] | list models or existing Oracle conversations; sessions defaults to the current workspace and can filter to a specific context |
| Sticky routing | bind_context op="status|bind|list" [context_id="..."] [working_dirs="/abs/root[,/abs/root2]"] | use list to discover windows and context_ids; prefer bind context_id="..." to pin a tab, or use working_dirs when you want RepoPrompt to route to a workspace by roots (exact match first, repo_paths superset fallback) |
| Window routing bootstrap | rp({ windows: true }) then rp({ bind: { window: N } }) | only for initial window selection before using bind_context |
| Workspace inventory/tab lifecycle | manage_workspaces action="list|switch|create|delete|add_folder|remove_folder|create_tab|close_tab" | inventory + lifecycle only; use bind_context for routing/context discovery |
| Agent runs | agent_run op="start|poll|wait|cancel|steer|respond" | advanced, session-based Agent Mode control; poll/wait accept session_id or session_ids |
| Agent/session management | agent_manage op="list_agents|list_sessions|extract_handoff|create_session|resume_session|stop_session|cleanup_sessions|list_workflows" | inspect durable session/workflow state and export agent handoff transcript; list_sessions uses MCP-facing states and list_workflows includes orchestrate |
| Auto context | context_builder instructions="..." [response_type="clarify|question|plan|review"] | token-costly, invoke explicitly |
| Git operations | git op="status|diff|log|show|blame" [compare="..."] [detail="..."] | worktree support via main/trunk aliases and merge-base comparisons, @main:<branch> |
Path syntax is tool-specific. Use absolute paths when a tool accepts them. For read_file and apply_edits, reuse the exact path returned by read_file unchanged; in a multi-root workspace, its explicit form may be root@<UUID>//rel/path. For manage_selection, prefix a relative path with the loaded root name when needed (for example, ProjectA/src/main.swift).
Notes:
file_search path="..." is an alias for file_search filter.paths=["..."]file_search filter.paths accepts absolute or relative paths/folders, loaded root names, and root-name-prefixed paths (for example, ProjectA/src). It does not accept root@<UUID>//... aliases returned by read_file.file_actions requires absolute path and new_path valuesget_code_structure reads RepoPrompt's committed code graph; use read_file when you need the latest file contentsIf results look wrong, assume routing first-not tool failure.
rp({ windows: true }) - list available windowsrp is already bound and the needed roots are present, keep itrp({ bind: { window: N } }) - bind to the right windowbind_context op="list" - inspect windows, active workspaces, tabs, context_ids, and current bindings when routing is ambiguousbind_context op="bind" context_id="..." - pin the specific compose tab you want after choosing it from listbind_context op="bind" working_dirs="/abs/root" when you want RepoPrompt to route to a workspace by roots without pinning a tabget_file_tree - confirm workspace rootsNotes:
bind_context op="bind" working_dirs="/abs/root[,/abs/root2]" matches workspace roots, not descendant pathsrepo_paths set; if none exists, RepoPrompt may fall back to a workspace whose roots are a strict supersetmanage_workspaces action="list" is workspace inventory; bind_context op="list" is the global window/tab routing viewRepoPrompt only operates within workspace root folders.
agent_run + agent_manage are RepoPrompt's external control plane for Agent Mode: use them when you need to drive a long-running per-tab subagent session, not just make one-off MCP file/chat calls.
agent_run for run lifecycle: start, wait/poll, respond, steer, cancelagent_manage for durable metadata: discover agents/workflows, list sessions, and export handoff transcriptagent_manage op="extract_handoff" to pull into your context a handoff transcript of the subagent's context. It exports a <forked_session ...> payload; set output_path to write a file, or omit it for inline XML.running, waiting_for_input, completed, and failed; waiting_for_input means reply with agent_run op="respond"agent_manage op="list_workflows" includes orchestrate for planning, decomposition, and sub-agent dispatchagent_run op="wait" / op="poll" accept either session_id or session_ids; multi-wait wakes on the first interesting sessionwait/poll and handle pending input firstorchestrate runs may spawn sub-agents, but nested sub-agents cannot recursively start more agent runsThrough rp, context_builder and generic oracle_send are asynchronous: the start call returns a job_id; call the matching context_builder_wait or oracle_send_wait, and if it returns running, repeat that same wait as the next action. Waits observe the original request and never resubmit it; /rp oracle remains synchronous.
context_builder instructions="..." [response_type="clarify|question|plan|review"]
Context Builder explores the codebase and curates file selection automatically.
response_type="clarify" (default): Returns context for handoff or manual refinementresponse_type="question": Answers using built contextresponse_type="plan": Generates an implementation planresponse_type="review": Generates a code review with git diff contextFor question, plan, and review responses, use the chat_id from the terminal wait result with oracle_send new_chat=false chat_id="..." for follow-up.
For a shareable handoff artifact, set export_response=true; the terminal wait result includes oracle_export_path.
These operations are token-costly; invoke them explicitly when the user requests them or during planning phases, not automatically.
apply_edits failure, always re-read before retrying - never guess at what changedapply_edits - relative paths resolve against the bound workspaceWhen the task involves a repository, use rp as your toolkit for exploration, reading, editing, and file operations.
rp({ windows: true })rp({ bind: { window: N } })rp({ call: "bind_context", args: { op: "list" } }), then rp({ call: "bind_context", args: { op: "bind", context_id: "..." } })get_file_tree, file_search, read_file, etc.Use Pi-native ls/find/grep/read/edit/write only when rp is unavailable after one retry.
Unexpected output is usually a routing issue-wrong workspace, wrong window, wrong tab-not a tool failure. Check routing before falling back.
rp, not native repo-file tools or bashpwdrp({ describe: "tool_name" }) when exact parameters matterNever use the terminal to modify text files. Always use rp's apply_edits (or Pi's edit if rp unavailable). Modifying files via terminal is only acceptable if rp is not available and you need to do large-scale find/replace operations or similar on files. In such cases, explicitly get the user's permission before using it.
© w-winter, MIT. 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/rp of w-winter/dot314.
Open the folder on GitHubat commit 0c6bbc7
Rp 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 |
|---|---|---|---|---|---|---|
| Rp this skillw-winter/dot314 | 139 | — | ~3.4k | Automated safety check: Pass | MIT | |
| Always Compareai-analyst-lab/ai-analyst | 304 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Always Verify GCProminirani/antigravity-skills | 592 | — | ~804 | Automated safety check: Pass | None | |
| Always Ask Nextendman100/skill-always-ask-next | 127 | — | ~261 | Automated safety check: Pass | None | |
| Always Current Datetimeaiskillstore/marketplace | 430 | — | ~2k | Automated safety check: Pass | MIT | |
| Dify Command Line with difyctllanggenius/dify | 158k | — | ~1.4k | Automated safety check: Pass | Custom licence |
ai-analyst-lab/ai-analyst
Never present a metric or number in isolation; anchor every number to a comparison (prior period, benchmark, or another segment) or state that none is available.
rominirani/antigravity-skills
A workflow for Google Cloud changes: pick gcloud, bq or gsutil, check the command against official docs, preview with a dry run and ask for approval before executing.
endman100/skill-always-ask-next
Always ask the user what to do next before finishing all tasks.
aiskillstore/marketplace
A skill your agent uses when replying. An agent skill from aiskillstore/marketplace.
langgenius/dify
Base skill for the difyctl CLI: discover a Dify server's operations through help output and run them as commands, always with JSON output.
asgeirtj/system_prompts_leaks
On an explicit planning request, always call readskill for this skill before answering.
w-winter/dot314
Refresh RepoPrompt tool guidance when the CLI/MCP surface changes.
w-winter/dot314
Deep, exhaustive research on a topic across X (Twitter) by driving Grok (x.com/i/grok) through surf.
w-winter/dot314
Search indexed text corpora with qmd. An agent skill from w-winter/dot314.
w-winter/dot314
Control Chrome browser via CLI for testing, automation, and debugging.
w-winter/dot314
Review prose written for others (e.g., user-facing documentation, prompts for other LLMs, reports, plans, inline comments, docstrings) for local jargon leakage, orphaned references, missing…
w-winter/dot314
Build/test Xcode projects via the XcodeBuildMCP MCP server using a local CLI wrapper for pi (no MCP support).
Always read this skill when the user mentions "rp" or "repoprompt", or before accessing a repository outside the current RepoPrompt workspace. Rp is an agent skill from w-winter/dot314. Always read this skill when the user mentions "rp" or "repoprompt", or before accessing a repository outside the current RepoPrompt workspace.
Rp fits situations like: before accessing a repository outside the current RepoPrompt workspace.
Run `npx skills add w-winter/dot314 --skill rp -a claude-code`. Or copy the skill folder (skills/rp in w-winter/dot314) into .claude/skills/rp in your project. Claude Code loads it when a task matches its description.
Run `npx skills add w-winter/dot314 --skill rp -a codex`. Or copy the skill folder (skills/rp in w-winter/dot314) into .agents/skills/rp 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 w-winter/dot314 --skill rp -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/rp, .gemini/skills/rp, .github/skills/rp and .opencode/skills/rp in your project.
Going by SKILL.md and its folder, Rp needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. 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.
Rp is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 14k 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 Rp: Always Compare (ai-analyst-lab/ai-analyst, 304 stars), Always Verify GCP (rominirani/antigravity-skills, 592 stars), Always Ask Next (endman100/skill-always-ask-next, 127 stars) and Always Current Datetime (aiskillstore/marketplace, 430 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
w-winter (a GitHub user) maintains it in w-winter/dot314, which has 139 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.
Source: w-winter/dot314 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.