Source evaluation and research methodology skill for code and architecture decisions. Covers: source authority hierarchy, evaluating recency and context, conflict resolution, idiomatic code selection, research process, and reporting findings with attribution. Use when: researching unfamiliar patterns, evaluating competing approaches, choosing libraries, or reviewing architectural decisions against industry best practice. Sources: IETF, W3C, ECMA, POSIX, Google engineering blogs, Stripe, Cloudflare, recognized expert writings.
Methodology for researching code patterns, architecture decisions, and implementation approaches. This skill governs how to find answers and which sources to trust — ensuring research always prioritizes industry best practice, elegant idiomatic implementations, and authoritative sources.
Based on standards bodies (IETF, W3C, ECMA, ISO, POSIX), Big Tech engineering publications (Google, Stripe, Cloudflare, Meta, AWS, Netflix, Discord), recognized expert writings (Fowler, Beck, Hickey, Kleppmann, Pike, Cantrill), and well-governed OSS reference implementations.
Scope boundary: This skill covers research methodology — where to look, what to trust, how to report findings. For domain-specific guidance:
- API contract decisions and HTTP semantics → API Design skill (
/api-design)- TypeScript/React patterns → TypeScript skill (
/typescript)- Security posture and threat models → Web Security skill (
/web-security)
Rank sources by authority. Higher tiers override lower tiers when they conflict.
The ground truth. Always check here first when a standard exists.
| Source | Domain |
|---|---|
| IETF RFCs | HTTP, TLS, DNS, URI, OAuth, JWT, email |
| W3C | HTML, CSS, DOM, Web APIs, accessibility |
| ECMA | JavaScript/TypeScript language semantics |
| ISO | Character encoding, date/time, security |
| POSIX / IEEE | Shell, filesystem, signals, process model |
| Language specs | Go Spec, Python Language Reference |
Trust a company's engineering publications only on topics where they are a recognized leader. A company's blog post outside their domain of expertise is Tier 5.
| Company | Trust on | Do not generalize to |
|---|---|---|
| Distributed systems, API design (AIP), SRE, protocol buffers, observability | Frontend patterns, DX | |
| Stripe | Payments, API developer experience, idempotency, webhook design | Infrastructure, systems |
| Cloudflare | Networking, edge computing, DNS, DDoS, HTTP semantics | Application architecture |
| Meta | React, UI component design, GraphQL, large-scale frontend | Backend API design |
| AWS | Cloud infrastructure, serverless, managed services | Application-level patterns |
| Netflix | Resilience engineering, chaos engineering, streaming at scale | API design, frontend |
| Discord | Real-time communication at scale, WebSocket patterns | Enterprise patterns |
Individuals with sustained, peer-recognized contributions. Their writings carry authority on their specific domains.
| Expert | Domain |
|---|---|
| Martin Fowler | Architecture, refactoring, enterprise patterns |
| Kent Beck | TDD, XP, software design |
| Rich Hickey | Simplicity, data-oriented design, immutability |
| Martin Kleppmann | Distributed data, consistency models, stream processing |
| Rob Pike | Systems programming, Go philosophy, simplicity |
| Bryan Cantrill | Systems observability, debugging, DTrace |
| Dan Abramov | React patterns, mental models for UI |
Reference implementations with strong governance. Code as documentation of best practice.
Useful for discovery and initial orientation. Never rely on as sole authority.
When authoritative sources disagree:
Follow this order. Stop when you have sufficient authoritative coverage.
Before adopting a pattern or recommendation:
"RFC 9457" problem details not api error handlingreact 19 server components not react server componentssite:datatracker.ietf.org, site:stripe.com/docsWhen researching implementations, evaluate every candidate pattern against these quality dimensions — in priority order:
The best solution conforms to established standards. A technically elegant approach that violates HTTP semantics, language specifications, or protocol requirements is not a good solution. Standards exist because they encode hard-won consensus about interoperability and correctness.
Prefer patterns that handle failure gracefully, degrade predictably, and have been battle-tested under adversarial conditions. Evaluate:
The best solution is the one that fully and properly solves the problem with nothing extraneous and nothing missing. Evaluate:
The pattern should be production-ready — not a prototype that "works on my machine":
Defer to the language-specific skill for detailed idiom guidance:
/typescript)When writing research.md or reporting findings, attribute sources with:
Example: (Tier 1, IETF RFC 9457, 2023) or (Tier 2, Stripe engineering blog, 2024) or (Tier 5, Stack Overflow answer, 2022 — verify against primary source)
Write findings to research.md with sections: Summary, Stack, Existing patterns, Integration points, Gotchas, Testing, Open questions. Add a ## Sources section at the end with tiered attribution for all referenced materials.
| Anti-pattern | Why it fails | Fix |
|---|---|---|
| Treating Stack Overflow as authoritative | Answers are community-voted, not peer-reviewed; many are outdated | Verify against Tier 1-3 sources |
| Following outdated blog posts | Pre-major-version advice can be actively harmful | Check version alignment and deprecation signals |
| Cargo-culting patterns without context | A pattern from a 10M-user system may be over-engineered for your use case | Match the source's deployment context to yours |
| Conflating popularity with correctness | Most-upvoted answer may be most accessible, not most correct | Trace to authoritative sources |
| Citing a company outside their domain | Google's frontend advice is not as authoritative as their distributed systems guidance | Check the Tier 2 domain column |
| Silently picking a winner when sources conflict | Hides important trade-off information from the decision-maker | Present both positions with trade-offs |
| Relying on a single source | Even authoritative sources can be wrong or context-specific | Cross-reference at least two sources |
| Translating idioms across ecosystems | Java patterns in Go, Python patterns in TypeScript — produces non-idiomatic code | Research the target language's conventions first |