Tech Research Enforcer
Core Principle
Never assume. Always verify. Technology changes rapidly—APIs evolve, libraries update, best practices shift, and documentation changes. Even when Claude has knowledge about a topic, that knowledge may be outdated or incomplete for the user's specific context.
Mandatory Research Workflow
When to Use This Workflow
ALWAYS use this workflow for questions involving:
- Programming languages (Python, JavaScript, Go, Rust, Java, C#, etc.)
- Frameworks and libraries (React, Vue, Django, FastAPI, Spring Boot, .NET, etc.)
- DevOps tools (Docker, Kubernetes, Terraform, Ansible, Helm, etc.)
- Cloud platforms (AWS, Azure, GCP, DigitalOcean, etc.)
- Databases (PostgreSQL, MySQL, MongoDB, Redis, etc.)
- Build tools and package managers (npm, pip, cargo, Maven, Gradle, etc.)
- CI/CD platforms (GitHub Actions, GitLab CI, Jenkins, CircleCI, etc.)
- Monitoring and observability (Prometheus, Grafana, ELK, Datadog, etc.)
- Infrastructure as Code (Terraform, Pulumi, CloudFormation, etc.)
- Container orchestration (Kubernetes, Docker Swarm, ECS, etc.)
Step 1: Identify What Needs Verification
Before answering any technical question, explicitly identify:
- Specific technologies mentioned: Names, versions if mentioned
- Implicit assumptions: What am I assuming about current state, APIs, or behavior?
- Critical details: Configuration syntax, API endpoints, CLI commands, file formats
- Version sensitivity: Does this answer depend on specific versions?
Step 2: Search for Current Information
Use web_search to find authoritative sources:
Primary sources to prioritize:
- Official documentation sites (docs.python.org, kubernetes.io/docs, react.dev, etc.)
- Official GitHub repositories (for libraries and tools)
- Official blogs and release notes
- Cloud provider documentation (AWS docs, Azure docs, GCP docs)
- Package registry pages (PyPI, npm, crates.io, Maven Central)
Search strategy:
First search: "[technology] [specific feature] official documentation"
If unclear: "[technology] [version] [feature] latest"
For APIs: "[library] [version] API reference"
For configs: "[tool] configuration [format/syntax]"
For troubleshooting: "[error message] [technology] [version]"
Step 3: Fetch and Read Official Documentation
Use web_fetch to retrieve complete documentation pages:
- Fetch the official documentation page for the specific feature/API
- If searching found GitHub repos, fetch README.md or relevant docs
- For version-specific questions, fetch the specific version's documentation
- For configuration, fetch example configs or schema documentation
Never stop at search snippets alone—snippets are often incomplete or missing crucial context.
Step 4: Verify and Cross-Reference
After fetching documentation:
- Check if the information matches the user's version/context
- Look for deprecation notices, warnings, or version requirements
- If uncertainty remains, fetch additional sources
- For conflicting information, prioritize official sources over community content
Step 5: Iterate If Needed
If the initial research doesn't fully answer the question:
- Search for more specific queries
- Fetch additional documentation sections
- Look for related issues in GitHub repos (for bugs or known issues)
- Check changelog/release notes if version-specific behavior is relevant
Response Guidelines
Always Include
- Source attribution: Mention which documentation/source the answer is based on
- Version awareness: If applicable, specify which version(s) the answer applies to
- Links: Provide links to the fetched documentation for user reference
- Caveats: Note any limitations, deprecations, or version-specific behaviors
Format for Technical Responses
[Provide direct answer based on fetched documentation]
**Source**: [Link to official documentation]
**Version**: [If applicable]
**Additional notes**: [Caveats, deprecations, alternatives]
Never Do
- ❌ Answer from memory alone without verification
- ❌ Assume configuration syntax without checking current documentation
- ❌ Provide code examples without verifying current API
- ❌ Skip web_fetch after web_search—snippets aren't enough
- ❌ Use outdated patterns if newer approaches exist
Special Cases
Library/Framework Comparisons
When comparing technologies:
- Search for each technology's current state
- Fetch official feature lists or comparison pages
- Check recent release dates and activity
- Verify claimed features in official docs
Debugging/Troubleshooting
When helping debug:
- Search for the specific error message + technology + version
- Fetch relevant GitHub issues if found
- Check official troubleshooting guides
- Verify suggested solutions in current documentation
Configuration Files
For configuration questions:
- Fetch official configuration schema/reference
- Look for official examples in documentation
- Verify syntax for the specific version
- Check for deprecated or changed options
Version-Specific Questions
When version is specified:
- Search specifically for that version's documentation
- If docs for that version aren't available, note this explicitly
- Fetch changelog/migration guides if suggesting version upgrade
- Warn about potential version incompatibilities
Examples
❌ Bad: Answering from memory
User: "How do I configure Docker autoscaling with KEDA?"
Bad response: "You can use KEDA's ScaledObject with Docker... [proceeds without verification]"
✅ Good: Research-first approach
User: "How do I configure Docker autoscaling with KEDA?"
Good workflow:
- Search: "KEDA Docker container autoscaling official documentation"
- Fetch: KEDA official docs on ScaledObject
- Fetch: Docker/container-specific KEDA examples
- Provide answer with sources and current configuration syntax
❌ Bad: Assuming API syntax
User: "How do I use FastAPI's dependency injection?"
Bad response: "You use Depends() like this... [shows code from memory]"
✅ Good: Verify current API
User: "How do I use FastAPI's dependency injection?"
Good workflow:
- Search: "FastAPI dependency injection official documentation"
- Fetch: FastAPI docs on dependencies
- Verify current syntax and best practices
- Provide code example from official docs with source attribution
Research Triggers
Immediately trigger web research when encountering:
- Specific version numbers mentioned
- Technology names (even if familiar)
- Configuration file formats
- CLI command syntax
- API methods or endpoints
- Error messages or debugging requests
- "Current" or "latest" version questions
- Comparison requests between technologies
- Best practices questions (these evolve)
- Integration or compatibility questions
Remember
- Claude's training data has a cutoff—technology changes daily
- Assumptions break production systems—verify before advising
- Official documentation is authoritative—prioritize it over memory
- Iterative research is thorough research—don't stop at first search
- Users trust Claude to be current—web research maintains that trust
1---2name: tech-research-enforcer3description: Enforces iterative web research for coding and DevOps questions to prevent assumptions about libraries, frameworks, APIs, versions, and configurations. Use this skill when the user asks about programming languages, frameworks, libraries, DevOps tools, cloud platforms, databases, container orchestration, CI/CD, infrastructure as code, or any technical topic where current documentation, version-specific behavior, or recent changes matter. This skill ensures Claude searches and fetches authoritative sources before answering, even for topics Claude may have knowledge about, to verify current state and avoid outdated information.4---5
6# Tech Research Enforcer
7
8## Core Principle
9
10**Never assume. Always verify.** Technology changes rapidly—APIs evolve, libraries update, best practices shift, and documentation changes. Even when Claude has knowledge about a topic, that knowledge may be outdated or incomplete for the user's specific context.
11
12## Mandatory Research Workflow
13
14### When to Use This Workflow
15
16ALWAYS use this workflow for questions involving:
17
18- Programming languages (Python, JavaScript, Go, Rust, Java, C#, etc.)
19- Frameworks and libraries (React, Vue, Django, FastAPI, Spring Boot, .NET, etc.)
20- DevOps tools (Docker, Kubernetes, Terraform, Ansible, Helm, etc.)
21- Cloud platforms (AWS, Azure, GCP, DigitalOcean, etc.)
22- Databases (PostgreSQL, MySQL, MongoDB, Redis, etc.)
23- Build tools and package managers (npm, pip, cargo, Maven, Gradle, etc.)
24- CI/CD platforms (GitHub Actions, GitLab CI, Jenkins, CircleCI, etc.)
25- Monitoring and observability (Prometheus, Grafana, ELK, Datadog, etc.)
26- Infrastructure as Code (Terraform, Pulumi, CloudFormation, etc.)
27- Container orchestration (Kubernetes, Docker Swarm, ECS, etc.)
28
29### Step 1: Identify What Needs Verification
30
31Before answering any technical question, explicitly identify:
32
331. **Specific technologies mentioned**: Names, versions if mentioned
342. **Implicit assumptions**: What am I assuming about current state, APIs, or behavior?
353. **Critical details**: Configuration syntax, API endpoints, CLI commands, file formats
364. **Version sensitivity**: Does this answer depend on specific versions?
37
38### Step 2: Search for Current Information
39
40Use `web_search` to find authoritative sources:
41
42**Primary sources to prioritize:**
43- Official documentation sites (docs.python.org, kubernetes.io/docs, react.dev, etc.)
44- Official GitHub repositories (for libraries and tools)
45- Official blogs and release notes
46- Cloud provider documentation (AWS docs, Azure docs, GCP docs)
47- Package registry pages (PyPI, npm, crates.io, Maven Central)
48
49**Search strategy:**
50```
51First search: "[technology] [specific feature] official documentation"
52If unclear: "[technology] [version] [feature] latest"
53For APIs: "[library] [version] API reference"
54For configs: "[tool] configuration [format/syntax]"
55For troubleshooting: "[error message] [technology] [version]"
56```
57
58### Step 3: Fetch and Read Official Documentation
59
60Use `web_fetch` to retrieve complete documentation pages:
61
621. Fetch the official documentation page for the specific feature/API
632. If searching found GitHub repos, fetch README.md or relevant docs
643. For version-specific questions, fetch the specific version's documentation
654. For configuration, fetch example configs or schema documentation
66
67**Never stop at search snippets alone**—snippets are often incomplete or missing crucial context.
68
69### Step 4: Verify and Cross-Reference
70
71After fetching documentation:
72
731. Check if the information matches the user's version/context
742. Look for deprecation notices, warnings, or version requirements
753. If uncertainty remains, fetch additional sources
764. For conflicting information, prioritize official sources over community content
77
78### Step 5: Iterate If Needed
79
80If the initial research doesn't fully answer the question:
81
821. Search for more specific queries
832. Fetch additional documentation sections
843. Look for related issues in GitHub repos (for bugs or known issues)
854. Check changelog/release notes if version-specific behavior is relevant
86
87## Response Guidelines
88
89### Always Include
90
911. **Source attribution**: Mention which documentation/source the answer is based on
922. **Version awareness**: If applicable, specify which version(s) the answer applies to
933. **Links**: Provide links to the fetched documentation for user reference
944. **Caveats**: Note any limitations, deprecations, or version-specific behaviors
95
96### Format for Technical Responses
97
98```markdown
99[Provide direct answer based on fetched documentation]
100
101**Source**: [Link to official documentation]
102**Version**: [If applicable]
103**Additional notes**: [Caveats, deprecations, alternatives]
104```
105
106### Never Do
107
108- ❌ Answer from memory alone without verification
109- ❌ Assume configuration syntax without checking current documentation
110- ❌ Provide code examples without verifying current API
111- ❌ Skip web_fetch after web_search—snippets aren't enough
112- ❌ Use outdated patterns if newer approaches exist
113
114## Special Cases
115
116### Library/Framework Comparisons
117
118When comparing technologies:
1191. Search for each technology's current state
1202. Fetch official feature lists or comparison pages
1213. Check recent release dates and activity
1224. Verify claimed features in official docs
123
124### Debugging/Troubleshooting
125
126When helping debug:
1271. Search for the specific error message + technology + version
1282. Fetch relevant GitHub issues if found
1293. Check official troubleshooting guides
1304. Verify suggested solutions in current documentation
131
132### Configuration Files
133
134For configuration questions:
1351. Fetch official configuration schema/reference
1362. Look for official examples in documentation
1373. Verify syntax for the specific version
1384. Check for deprecated or changed options
139
140### Version-Specific Questions
141
142When version is specified:
1431. Search specifically for that version's documentation
1442. If docs for that version aren't available, note this explicitly
1453. Fetch changelog/migration guides if suggesting version upgrade
1464. Warn about potential version incompatibilities
147
148## Examples
149
150### ❌ Bad: Answering from memory
151User: "How do I configure Docker autoscaling with KEDA?"
152
153Bad response: "You can use KEDA's ScaledObject with Docker... [proceeds without verification]"
154
155### ✅ Good: Research-first approach
156User: "How do I configure Docker autoscaling with KEDA?"
157
158Good workflow:
1591. Search: "KEDA Docker container autoscaling official documentation"
1602. Fetch: KEDA official docs on ScaledObject
1613. Fetch: Docker/container-specific KEDA examples
1624. Provide answer with sources and current configuration syntax
163
164### ❌ Bad: Assuming API syntax
165User: "How do I use FastAPI's dependency injection?"
166
167Bad response: "You use Depends() like this... [shows code from memory]"
168
169### ✅ Good: Verify current API
170User: "How do I use FastAPI's dependency injection?"
171
172Good workflow:
1731. Search: "FastAPI dependency injection official documentation"
1742. Fetch: FastAPI docs on dependencies
1753. Verify current syntax and best practices
1764. Provide code example from official docs with source attribution
177
178## Research Triggers
179
180Immediately trigger web research when encountering:
181
182- Specific version numbers mentioned
183- Technology names (even if familiar)
184- Configuration file formats
185- CLI command syntax
186- API methods or endpoints
187- Error messages or debugging requests
188- "Current" or "latest" version questions
189- Comparison requests between technologies
190- Best practices questions (these evolve)
191- Integration or compatibility questions
192
193## Remember
194
1951. **Claude's training data has a cutoff**—technology changes daily
1962. **Assumptions break production systems**—verify before advising
1973. **Official documentation is authoritative**—prioritize it over memory
1984. **Iterative research is thorough research**—don't stop at first search
1995. **Users trust Claude to be current**—web research maintains that trust