Researches standards and patterns via MCP Ref for Story Technical Notes. Use when Story needs standards research before task generation.
Paths: File paths (
shared/,references/,../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root.
This skill researches industry standards and architectural patterns using MCP Ref to generate Standards Research for Story Technical Notes.
Research industry standards, RFCs, and architectural patterns for a given Epic/Story domain. Produce a Standards Research section (tables + links, no code) for insertion into Story Technical Notes.
This skill should be used when:
The skill follows a 7-phase workflow focused on standards and architectural patterns.
Stack Detection → Identify → Ref Research → Existing Guides → Generate Research → Save to File → Return
Objective: Determine project stack BEFORE research to filter queries.
Detection:
| Indicator | Stack | Query Prefix |
|---|---|---|
*.csproj, *.sln | .NET | "C# ASP.NET Core" |
package.json + tsconfig.json | Node.js | "TypeScript Node.js" |
requirements.txt, pyproject.toml | Python | "Python" |
go.mod | Go | "Go Golang" |
Cargo.toml | Rust | "Rust" |
build.gradle, pom.xml | Java | "Java" |
Process:
context_store.TECH_STACK if provided → use directlydetected_stack.query_prefix for Phases 2-3Output: detected_stack = {language, framework, query_prefix}
Skip conditions: If no stack detected → proceed without prefix (generic queries)
Objective: Parse Epic/Story for libraries and technology keywords.
Process:
Read Epic/Story description (provided as input)
Extract library list:
Determine Story domain:
Output: Library list (3-5 libraries max) + Story domain
Skip conditions:
Objective: Get industry standards and architectural patterns.
Process:
Focus on standards/RFCs:
mcp__Ref__ref_search_documentation(query="[detected_stack.query_prefix] [story_domain] RFC standard specification")"C# ASP.NET Core rate limiting RFC standard specification"Focus on architectural patterns:
mcp__Ref__ref_search_documentation(query="[detected_stack.query_prefix] [story_domain] architectural patterns best practices")"TypeScript Node.js authentication architectural patterns best practices"Output: Standards compliance table + Architectural patterns list
Objective: Get industry standards and best practices.
Process:
FOR EACH library + Story domain combination:
mcp__Ref__ref_search_documentation(query="[detected_stack.query_prefix] [library] [domain] best practices {current_year}")mcp__Ref__ref_search_documentation(query="[detected_stack.query_prefix] [domain] industry standards RFC")"C# ASP.NET Core Polly rate limiting best practices {current_year}"Extract from results (NO CODE - text/tables only):
Store results for Research Summary compilation
Output: Standards compliance table (RFC/Standard name, how to comply) + Best practices list
Objective: Find relevant pattern guides in docs/guides/ directory.
Process:
Scan guides directory:
Glob to find docs/guides/*.mdMatch guides to Story domain:
Collect guide paths for linking in Technical Notes
Output: Existing guides list (relative paths from project root)
Objective: Compile research results into Standards Research for Story Technical Notes subsection.
NO_CODE Rule: No code snippets. Use tables + links to official docs only.
Format Priority:
┌─────────────────────────────────────┐
│ 1. TABLES + ASCII diagrams ← Priority │
│ 2. Lists (enumerations only) │
│ 3. Text (last resort) │
└─────────────────────────────────────┘
Output Format (Table-First):
## Standards Research
**Standards compliance:**
| Standard | Requirement | How to Comply | Reference |
|----------|-------------|---------------|-----------|
| RFC 6749 | OAuth 2.0 | Use PKCE for public clients | [RFC 6749](url) |
| RFC 6585 | Rate Limiting | Return 429 + Retry-After | [RFC 6585](url) |
**Architectural patterns:**
| Pattern | When to Use | Reference |
|---------|-------------|-----------|
| Middleware | Request interception | [Official docs](url) |
| Decorator | Cross-cutting concerns | [Official docs](url) |
**Existing guides:**
- [guide_path.md](guide_path.md) - Brief description
Output: Standards Research (Markdown string) for insertion into Story Technical Notes subsection
Important notes:
Objective: Save Standards Research to standalone file for reusability and knowledge base.
MANDATORY: All research MUST be saved to file, even if returned as string to caller.
Process:
Determine next research number:
docs/research/rsh-*.md filesGenerate filename:
rsh-{number:03d}-{slug}.mdstory_domain (e.g., "rate-limiting", "oauth-authentication")rsh-042-rate-limiting.mdCreate research document using template:
# Standards Research: {Story Domain}
**Created:** {ISO date}
**Epic:** {Epic ID if available}
**Research Type:** Standards & Architectural Patterns
## Question
What industry standards and architectural patterns apply to {story_domain}?
## Context
{Brief description from Epic/Story}
## Methodology
- **Standards:** MCP Ref search for RFCs and specifications
- **Patterns:** MCP Ref search for architectural patterns and best practices
- **Stack:** {detected_stack.language} {detected_stack.framework}
## Findings
{Insert Standards Research content from Phase 5 here}
## Conclusions
{1-2 sentences summarizing key standards/patterns that must be followed}
## Next Steps
- Reference this research in Story Technical Notes
- Link from architecture.md if patterns affect system design
- Create ADR if architectural decision needed
## Sources
{List of all MCP Ref search URLs with dates}
Save file:
docs/research/{filename}docs/research/ doesn't exist: create directoryUpdate README (if exists):
docs/research/README.md<!-- PLACEHOLDER -->: append research entry- [{filename}]({filename}) - {one-line summary}Output: File path (e.g., docs/research/rsh-042-rate-limiting.md)
Skip conditions:
Return to calling skill (ln-220, ln-310):
docs/research/rsh-{NNN}-{slug}.mdFormat:
{
"standards_research": "<markdown string>",
"file_path": "docs/research/rsh-042-rate-limiting.md"
}
If calling skill expects only string, return Standards Research string only. File is created regardless.
Dependencies:
Input parameters:
epic_description (string) - Epic Technical Notes + Scope In + Goalstory_domain (string, optional) - Story domain (e.g., "rate limiting")Output format:
docs/research/rsh-{NNN}-{slug}.mdTime-box: 15-20 minutes maximum per Epic
Performance:
Token efficiency:
docs/research/rsh-{NNN}-{slug}.md file (Phase 6); no exceptionsquery_prefix (e.g., "C# ASP.NET Core")query_prefix setdocs/guides/ scanned and matcheddocs/research/rsh-{NNN}-{slug}.md created with all required sectionsdocs/research/README.md exists and has placeholder)Tools:
mcp__Ref__ref_search_documentation() - Search best practices and standardsGlob - Scan docs/guides/ directoryGuidelines:
MANDATORY READ: Load references/research_guidelines.md — research quality guidelines (official docs > blog posts, prefer LTS versions)
MANDATORY READ: Load shared/references/research_tool_fallback.md
Version: 3.1.0 Last Updated: 2026-02-14