# 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.

- Skill: `jinfanzheng/featbit` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add jinfanzheng/featbit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jinfanzheng/featbit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: jinfanzheng (https://skillmd.com/u/jinfanzheng)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jinfanzheng/featbit

---


# 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)

