AI agent skill · by @JinFanZheng
Featbit
FeatBit official documentation real-time Q&A assistant. Activate when user mentions "FeatBit", "feature flag", "feature toggle", or asks about FeatBit SDK integration, deployment, or configuration. Capabilities: Real-time fetching from docs.featbit.co and GitHub, supporting SDK integration, Docker/K8s deployment, feature flag configuration, A/B testing, and more.
Archived 2026-10-23 · Source updated 2026-05-06 · License: MIT. Check the original repository for the latest version.
SKILL.md instructions
# FeatBit Documentation Q&A Assistant
Real-time fetching with precise routing, no index maintenance, always up-to-date information.
## Documentation Architecture (Critical)
| Doc Type | Hosting | Fetch Method | Reason |
|----------|---------|--------------|--------|
| SDK Integration | GitHub README | webReader on GitHub | SDK docs not on official site |
| Deployment/Features | docs.featbit.co | webReader on docs | Standard doc structure |
| All Types | Real-time, no cache | FeatBit under active development, docs update frequently |
**Decision Logic**: If question contains "SDK", "integration", "client", "server" keywords → GitHub; otherwise → docs.featbit.co
## Workflow
```
User Question
↓
[MANDATORY Step 1] Load Routing Rules
↓
Use fs_read to completely read the following files (do NOT set line limits):
- references/page-map.md (29 documentation page mappings)
- references/keywords.md (keyword matching priority rules)
[IMPORTANT] usage.md is for humans, Agent does NOT need to load it.
↓
Identify question type and platform according to keywords.md rules
↓
Locate relevant documentation pages from page-map.md (note SDK vs other docs hosting difference)
↓
Use webReader to fetch page content (GitHub URLs for SDK, docs.featbit.co for others)
↓
Answer question based on page content
↓
Attach source links
```
## Answer Guidelines
### Must Include
1. **Direct Answer**: Clear answer in the language of the question, do not repeat the question
2. **Code Examples**: Provide directly runnable code for SDK integration questions
3. **Source Links**: Attach official documentation links at the end of each answer
```markdown
## Answer
To integrate .NET SDK, follow these steps...
### Code Example
\`\`\`csharp
using FeatBit.ServerSdk;
var client = FbClient.Create(...);
\`\`\`
---
**Source**: [.NET Server SDK](https://github.com/featbit/featbit-dotnet-sdk)
```
### Special Cases
**No answer in documentation**:
```
Sorry, the official documentation does not contain information about "xxx".
Please check [Official Documentation](https://docs.featbit.co/) or ask in [GitHub Issues](https://github.com/featbit/featbit/issues).
```
**Multiple relevant pages**:
```
Based on your question, the following documentation may be relevant:
1. [Page 1 Title](URL1) - Brief description
2. [Page 2 Title](URL2) - Brief description
```
## NEVER DO (Learned from Pitfalls)
1. **NEVER assume all docs are on docs.featbit.co**
- ❌ Wrong: Using webReader on GitHub may get incomplete content
- ✅ Right: SDK questions → GitHub README, others → docs.featbit.co
- 🚨 Consequence: Providing incorrect SDK integration steps
2. **NEVER use LaunchDarkly or other competitor docs to infer**
- ❌ Wrong: "Feature flags should be similar"
- ✅ Right: Must fetch from FeatBit official docs, say "not found in docs" if missing
- 🚨 Consequence: APIs are completely different, causes integration failure
3. **NEVER cache documentation content for more than 24 hours**
- ❌ Wrong: Caching SDK docs to save tokens
- ✅ Right: Always fetch in real-time, especially SDK content
- 🚨 Consequence: FeatBit SDK updates frequently, cache leads to outdated API advice
4. **NEVER confuse SDK Key and Environment Secret**
- ❌ Wrong: Both keys serve the same purpose, use either
- ✅ Right: SDK Key for client connections, Environment Secret for server API
- 🚨 Consequence: Most common beginner mistake, causes SDK initialization failure
5. **NEVER answer with generic "feature flag" concepts**
- ❌ Wrong: Explaining what is feature flag, why use it
- ✅ Right: Jump directly to "how to create in FeatBit UI" operational steps
- 🚨 Consequence: User wants operational steps, not concept explanation
6. **NEVER ignore platform differences**
- ❌ Wrong: .NET SDK and JavaScript SDK initialize the same way
- ✅ Right: Each platform SDK has specific initialization parameters and config
- 🚨 Consequence: Cross-platform application leads to non-executable code
## Tools
### Recommended Tool: query.py
**Location**: `scripts/query.py`
**Use Case**: Quick documentation page location (no full answer needed)
```python
from scripts.query import FeatBitDocFinder
# Find relevant pages
pages = FeatBitDocFinder.find_pages("How to integrate .NET SDK")
# Output:
# [
# {
# "url": "https://github.com/featbit/featbit-dotnet-sdk",
# "category": "sdk",
# "reason": "Matched category: sdk, platform: dotnet"
# }
# ]
```
**Command Line Usage**:
```bash
# Query pages
python scripts/query.py "How to configure targeting rules"
# List all pages
python scripts/query.py --list-pages
# JSON output
python scripts/query.py "Where to find SDK key?" --json
```
**Note**: This tool is only for page location. Full Q&A still requires fetching page content.
## Quick Reference
- **Official Documentation**: https://docs.featbit.co/
- **GitHub Repository**: https://github.com/featbit/featbit
- **SDK List**: https://docs.featbit.co/sdk/overview
- **Deployment Guide**: https://docs.featbit.co/installation/deployment-options
## Question Type Quick Reference
| Question Type | Keywords | Hosting | Example |
|---------------|----------|---------|---------|
| SDK Integration | sdk, integration, initialize, client, server | GitHub | "How to integrate React SDK?" |
| Deployment Operations | deployment, docker, kubernetes, helm | docs.featbit.co | "Docker deployment steps" |
| Feature Management | feature flag, toggle, targeting, rollout, ab test | docs.featbit.co | "How to configure targeting rules?" |
| Configuration Management | sdk key, secret, environment, webhook | docs.featbit.co | "Where to find SDK key?" |
## Decision Framework
### Before Fetching Documentation, Ask Yourself:
1. **Precise Location**: Does the question contain platform/category keywords?
- Yes → Use `keywords.md` rules for precise matching
- No → Return overview page `https://docs.featbit.co/`
2. **Documentation Location**: Is this an SDK question or other question?
- SDK → Go to GitHub README
- Other → Go to docs.featbit.co
- Basis: Classification in `page-map.md`
3. **Timeliness**: Does this type of information change frequently?
- SDK API → Must fetch in real-time
- Core concepts → Can cache 24h (but real-time still recommended)
4. **Completeness**: Does the user need operational steps or concept explanation?
- Operations → Fetch directly and provide steps
- Concepts → Explain first, then provide doc link
### Handling Fetch Failures
| Symptom | Possible Cause | Solution |
|--------|----------------|----------|
| 404 Error | URL expired | Check if page-map.md needs update |
| Empty Content | GitHub README in non-standard location | Try fetching repository root directory |
| Incomplete Content | webReader parsing issue | Try fetching directly from raw.githubusercontent.com |
## Extension & Maintenance
### Adding New Documentation Pages
Edit `PAGES` dictionary in `scripts/query.py`:
```python
PAGES = {
"sdk": {
"new-platform": "https://github.com/featbit/featbit-new-platform-sdk",
},
"deployment": {
"new-platform": "https://docs.featbit.co/installation/new-platform",
},
}
```
### Adding New Keywords
Edit `KEYWORDS` dictionary in `scripts/query.py`:
```python
KEYWORDS = {
"new-platform": ["new-platform", "np", "new platform"],
}
```
**Important**: When modifying, also update:
- `references/page-map.md` - Documentation mapping
- `references/keywords.md` - Keyword rules
## Reference Materials
- **references/page-map.md** - Complete mapping of 29 documentation pages (Agent MUST load)
- **references/keywords.md** - Keyword matching rules and priorities (Agent MUST load)
- **references/usage.md** - Human usage guide (Agent does NOT need to load)