home / skills / jinfanzheng / kode-sdk-csharp / featbit
This skill provides real-time FeatBit documentation answers for SDK integration, deployment, and feature flag configuration.
npx playbooks add skill jinfanzheng/kode-sdk-csharp --skill featbitReview the files below or copy the command above to add this skill to your agents.
---
name: featbit
description: >-
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.
metadata:
category: integration
tier: retrieval
version: 4.0.0
author: Kode SDK
doc_source: https://docs.featbit.co/
features:
- real-time-fetch
- keyword-matching
- doc-qa
supported_topics:
- sdk-integration
- deployment
- configuration
- troubleshooting
- feature-flags
- targeting-rules
- ab-testing
- rollouts
---
# 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)
This skill is the FeatBit official documentation real-time Q&A assistant. It activates when a user mentions "FeatBit", "feature flag", "feature toggle", or asks about FeatBit SDK integration, deployment, or configuration. The skill fetches documentation in real time so answers reflect the latest docs and SDK READMEs. It routes SDK questions to GitHub and other topics to docs.featbit.co for accurate, source-backed guidance.
On activation the skill loads routing rules and required reference maps to classify the question. If keywords indicate an SDK/integration question it fetches the SDK README from GitHub; otherwise it fetches pages from docs.featbit.co. The skill composes a direct operational answer, includes runnable code for SDK integration queries, and attaches source links to the relevant documentation pages.
What if the documentation doesn't contain the answer?
I will state that the official documentation does not contain the information and point you to the main docs site or the relevant GitHub Issues page.
How do you decide whether to fetch from GitHub or docs.featbit.co?
The skill uses keyword rules: SDK/integration/client/server keywords route to GitHub; deployment, feature management, and configuration route to docs.featbit.co.