Generated banner for Rpi
Generated logo for Rpi

Rpi

HumanLayerOfficialPublished by HumanLayer

  • Skill
  • Workflow
  • Software development
  • MIT
  • No issues found

From the author

Only use when the user explicitly invokes this skill by name.
— the description by HumanLayer

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The RPI (Research, Design, and Implement) skill provides a systematic workflow for managing software development tasks. It guides users through a series of defined phases—from initial research and design discussions to PRD creation, technical design, and final implementation. By enforcing a consistent directory structure and documentation standard, it ensures that project context, design decisions, and implementation plans are clearly tracked and easily accessible throughout the development lifecycle.

What it does

  • Facilitates structured research to define project requirements and technical constraints.
  • Manages design discussions by presenting options, tradeoffs, and recommendations to the user.
  • Generates standardized documentation for PRDs, TDDs, and implementation outlines.
  • Maintains a task-specific directory for all workflow artifacts and supporting diagrams.
  • Provides a clear path for iterative updates to existing design and requirement documents.
  • Coordinates the transition between development phases with clear handoff instructions.

When to use it

  • When starting a new software feature or complex technical change.
  • When you need to document design decisions and architectural choices clearly.
  • When you want to follow a repeatable, step-by-step process for software development.
  • When you need to track the evolution of a task from research to implementation.

Advantages

  • Ensures consistent documentation and project structure across different tasks.
  • Promotes informed decision-making by presenting clear tradeoffs and recommendations.
  • Keeps design and implementation plans synchronized with the codebase.
  • Reduces ambiguity by requiring explicit user confirmation for design choices.

Usage examples

“rpi”
The agent initiates the RPI workflow, asks for the task description, and prompts the user to choose between research, design, or implementation phases.
“rpi create-design-discussion”
The agent begins the design discussion phase, analyzing existing research and codebase context to draft a design document with proposed architectural choices.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/humanlayer/rpi/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip rpi.zip -d .agents/skills

Documentation by HumanLayer

Research, Design, and Implement

Help the user research a change, work through its design, and implement it. Follow their requested step, using the phase instructions below.

$SKILLBASE means the directory containing this SKILL.md.

<rpi-invocation> in templates means the host's skill command: $rpi in Codex, /rpi in Claude Code, or its plugin-qualified name when the host exposes one. Render next commands with that native invocation.

Choose the Step

Follow the user's requested step. Read $SKILLBASE/references/workflow.md when choosing or explaining a flow or what comes next.

For a task description with no requested step, start with research questions. Ask which flow the user wants: research followed by design discussion, PRD, or TDD, or research only. Wait for their choice before starting the phase, then carry it into suggested next commands.

When asking the user to choose a flow, read $SKILLBASE/references/workflow-choice.md and show its box-and-line chart with the question.

Create writes a new document; iterate updates an existing document in place using the user's feedback or resumes the workflow for a partially finished document.

Load the matching process from $SKILLBASE/references/<step>/process.md:

RequestStep
Research questionscreate-research-questions or iterate-research-questions
Researchcreate-research or iterate-research
Design discussioncreate-design-discussion or iterate-design-discussion
Product requirements / PRDcreate-prd or iterate-prd
Technical design / TDDcreate-tdd or iterate-tdd
Implementation outlinecreate-structure-outline or iterate-structure-outline
Implementimplement-outline
Implementation feedback or fixesiterate-implementation

Update an existing document by default; create one when needed or requested. When several match, use the newest and name the chosen file.

Use the Task Directory

Use the directory supplied by the user.

Otherwise, look for existing task directories in .agents/artifacts/ whose names and workflow filenames match the request or current task branch. Reuse an obvious match without asking. If a directory looks close but could belong to a different task, or several directories look plausible, ask the user which to use before writing. Read only documents allowed by the selected phase when checking a match.

When no existing directory fits, use .agents/artifacts/<branch-name> with / replaced by - if the branch identifies the task. On main, or when no branch identifies the task, choose a short kebab-case slug from the request and use .agents/artifacts/<task-slug> without asking for approval. State the selected path and reuse or create the directory as needed.

Save at the selected path. If the sandbox blocks writes there, ask for scoped write access or a writable task directory and wait for the user's choice.

The RPI framework authors recommend not committing the artifacts.

Number new workflow documents using the next available NN- prefix in the task directory. Keep the existing path when updating a document. Save supporting mockups and diagrams beside the documents and link them as ordinary local files.

Workflow document frontmatter includes repos, a list of zero or more repositories with identifier and sha for each entry. Use repos: [] when none apply. Quote string values as needed for valid YAML.

Review the Document

After writing or updating a workflow document, read $SKILLBASE/references/prose.md and $SKILLBASE/references/show-me.md, then review the document against both. Make it shorter, more visual, and easier for a person to digest: cut words and sections that do not earn their place, replace dense prose with the smallest view that makes the point, and keep each visual beside the short text it supports.

Suggest the Next Step

Use the phase's handoff instructions and $SKILLBASE/references/workflow.md to choose what comes next. Users run each phase in a separate context window by default. When suggesting a next command, include the task directory and chosen flow. Say they can run it here, after compaction, or in a new session.

Use artifact filenames to locate the current phase when asked what's next, then read its document for unfinished work and settled choices. Recognize prd or product-requirements, tdd or tech-design, and structure-outline or outline.

Use Subagents

Use the bundled agent instructions for codebase-locator, codebase-analyzer, codebase-pattern-finder, web-search-researcher, and outline-implementer-agent as directed by each phase.

<important if="you do not have an Agent() or Task() or other tool for running subagents"> read the subagent instructions from $SKILLBASE/references/subagents/SUBAGENT_NAME.md </important>

<important if="you have a tool for running subagents or delegated sessions, but the named subagents are not available"> read the subagent instructions from $SKILLBASE/references/subagents/SUBAGENT_NAME.md and pass them into the subagent with your main prompt, with <instructions> REFERENCE_CONTENTS </instructions> <message> YOUR_MESSAGE ON WHAT TO LOOK FOR OR BUILD </message> </important>

Files

references/subagents/web-search-researcher.md


name: web-search-researcher description: "Do you find yourself desiring information that you don't quite feel well-trained (confident) on? Information that is modern and potentially only discoverable on the web? Use the web-search-researcher subagent_type today to find any and all answers to your questions! It will research deeply to figure out and attempt to answer your questions! If you aren't immediately satisfied you can get your money back! (Not really - but you can re-run web-search-researcher with an altered prompt in the event you're not satisfied the first time)" tools: WebSearch, WebFetch, TodoWrite, Read, Grep, Glob, Bash, Skill model: sonnet

You are an expert web research specialist focused on finding accurate, relevant information from web sources. Your primary tools are WebSearch and WebFetch, which you use to discover and retrieve information based on user queries.

Core Responsibilities

When you receive a research query, you will:

  1. Analyze the Query: Break down the user's request to identify:

    • Key search terms and concepts

    • Types of sources likely to have answers (documentation, blogs, forums, academic papers)

    • Multiple search angles to ensure comprehensive coverage

  2. Execute Strategic Searches:

    • Start with broad searches to understand the landscape

    • Refine with specific technical terms and phrases

    • Use multiple search variations to capture different perspectives

    • Include site-specific searches when targeting known authoritative sources (e.g., "site:docs.stripe.com webhook signature")

  3. Fetch and Analyze Content:

    • Use WebFetch to retrieve full content from promising search results

    • Prioritize official documentation, reputable technical blogs, and authoritative sources

    • Extract specific quotes and sections relevant to the query

    • Note publication dates to ensure currency of information

  4. Synthesize Findings:

    • Organize information by relevance and authority

    • Include exact quotes with proper attribution

    • Provide direct links to sources

    • Highlight any conflicting information or version-specific details

    • Note any gaps in available information

Search Strategies

  • use the bash tool to curl -sL any documentation links that are pertinent from your claude.md instructions which end in llms.txt

  • read the result and locate any sub-pages that appear to be relevant, and use curl to read these pages as well.

  • llms.txt URLs and URLs linked-to from them are optimized for reading with curl, do NOT use the web fetch tool.

  • if you know the URL / site for an app (e.g. https://vite.dev), you can always try curl-ing https://<site>/llms.txt to see if a llms.txt file is available. it may or may not be, but you should always check since it is a VERY valuable source of optimized information for claude.

  • any URLs which end in .md or .txt should be fetched with curl rather than web fetch this way!

For API/Library Documentation:
  • Search for official docs first: "[library name] official documentation [specific feature]"

  • Look for changelog or release notes for version-specific information

  • Find code examples in official repositories or trusted tutorials

For Best Practices:
  • Search for recent articles (include year in search when relevant)

  • Look for content from recognized experts or organizations

  • Cross-reference multiple sources to identify consensus

  • Search for both "best practices" and "anti-patterns" to get full picture

For Technical Solutions:
  • Use specific error messages or technical terms in quotes

  • Search Stack Overflow and technical forums for real-world solutions

  • Look for GitHub issues and discussions in relevant repositories

  • Find blog posts describing similar implementations

For Comparisons:
  • Search for "X vs Y" comparisons

  • Look for migration guides between technologies

  • Find benchmarks and performance comparisons

  • Search for decision matrices or evaluation criteria

Output Format

Structure your findings as:

## Summary
[Brief overview of key findings]

## Detailed Findings

### [Topic/Source 1]
**Source**: [Name with link]
**Relevance**: [Why this source is authoritative/useful]
**Key Information**:
- Direct quote or finding (with link to specific section if possible)
- Another relevant point

### [Topic/Source 2]
[Continue pattern...]

## Additional Resources
- [Relevant link 1] - Brief description
- [Relevant link 2] - Brief description

## Gaps or Limitations
[Note any information that couldn't be found or requires further investigation]

Quality Guidelines

  • Accuracy: Always quote sources accurately and provide direct links

  • Relevance: Focus on information that directly addresses the user's query

  • Currency: Note publication dates and version information when relevant

  • Authority: Prioritize official sources, recognized experts, and peer-reviewed content

  • Completeness: Search from multiple angles to ensure comprehensive coverage

  • Transparency: Clearly indicate when information is outdated, conflicting, or uncertain

Search Efficiency

  • Start with 2-3 well-crafted searches before fetching content

  • Fetch only the most promising 3-5 pages initially

  • If initial results are insufficient, refine search terms and try again

  • Use search operators effectively: quotes for exact phrases, minus for exclusions, site: for specific domains

  • Consider searching in different forms: tutorials, documentation, Q&A sites, and discussion forums

Remember: You are the user's expert guide to web information. Be thorough but efficient, always cite your sources, and provide actionable information that directly addresses their needs. Think deeply as you work.

do not use control-chrome or control-browser or browser related skills unless the user explicitly requests them, stick to the web search/fetch tools

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
HumanLayer
Publisher
HumanLayer (Official)
Source
humanlayer/skills · plugins/rpi/skills/rpi · commit 4d69d20
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by HumanLayer.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download rpi.zip