# "cs Chatbot Design"

> "Design conversational AI chatbots including intent recognition, slot filling, dialogue flow, and response generation. Use this skill when the user needs to build a chatbot, design conversation flows, implement intent classification, or improve chatbot accuracy — even if they say 'build a chatbot', 'our bot doesn't understand users', 'design a FAQ bot', or 'improve our chatbot's responses'.".

- Skill: `charlieviettq/cs-chatbot-design` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add charlieviettq/cs-chatbot-design`
- Raw SKILL.md: https://api.skillmd.com/api/skills/charlieviettq/cs-chatbot-design/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: charlieviettq (https://skillmd.com/u/charlieviettq)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/charlieviettq/cs-chatbot-design

---


# Chatbot Design

## Framework

```
IRON LAW: Intent First, Response Second

A chatbot must UNDERSTAND what the user wants (intent) before crafting
a response. Building response templates without intent classification
produces a keyword-matching FAQ, not a chatbot.

Flow: User message → Intent classification → Slot extraction → Response
```

### Core NLU Pipeline

| Stage | What It Does | Example |
|-------|-------------|---------|
| **Intent Classification** | Identify what the user wants to do | "What time do you close?" → intent: `check_hours` |
| **Entity/Slot Extraction** | Extract key information from the message | "Book a table for 4 on Friday" → slots: {party_size: 4, date: Friday} |
| **Dialogue Management** | Decide the next action (ask for missing info, confirm, execute) | Missing slot `time` → ask "What time would you like?" |
| **Response Generation** | Produce the reply | "I've booked a table for 4 on Friday at 7pm. See you then!" |

### Intent Design

- **Start with 10-15 core intents** covering 80% of user queries
- Each intent needs 10-20 training examples (varied phrasings)
- Include a `fallback` intent for unrecognized inputs
- Group related intents: `order_status`, `order_cancel`, `order_modify` under "Order Management"

### Dialogue Flow Patterns

| Pattern | When to Use | Example |
|---------|-----------|---------|
| **Single-turn** | Simple Q&A, no context needed | "What are your hours?" → respond immediately |
| **Multi-turn (slot filling)** | Need multiple pieces of info | "Book a table" → ask party size → ask date → ask time → confirm |
| **Branching** | Different paths based on user's answer | "Do you have an account?" → Yes: login flow / No: registration flow |
| **Confirmation** | Before executing actions | "I'll cancel order #12345. Is that correct?" |
| **Handoff** | Bot can't handle the request | "Let me connect you with a human agent" |

### Response Design Principles

1. **Acknowledge first**: "Got it, you want to check your order status."
2. **Be concise**: Answer the question, then stop. Don't add unnecessary information.
3. **Offer next steps**: "Is there anything else I can help with?" or suggest related actions.
4. **Use quick replies/buttons**: Reduce typing, guide the conversation.
5. **Personality**: Define a consistent tone (friendly, professional, casual) and stick to it.

### Metrics

| Metric | Definition | Target |
|--------|-----------|--------|
| **Intent accuracy** | % correctly classified intents | > 85% |
| **Containment rate** | % resolved without human handoff | > 60-70% |
| **CSAT** | Customer satisfaction score | > 4.0/5 |
| **Fallback rate** | % triggering fallback/unknown intent | < 15% |
| **Resolution time** | Average time to resolve | < 2 minutes |

## Output Format

```markdown
# Chatbot Design: {Use Case}

## Intent Catalog
| Intent | Description | Example Utterances | Priority |
|--------|-----------|-------------------|---------|
| {intent} | {what it means} | "{example 1}", "{example 2}" | H/M/L |

## Dialogue Flows
### {Flow Name}
1. User: {trigger utterance}
2. Bot: {response + slot question if needed}
3. User: {provides info}
4. Bot: {confirmation or action}

## Fallback Strategy
- After 1 miss: rephrase + suggest options
- After 2 misses: offer human handoff

## Metrics Targets
| Metric | Target |
|--------|--------|
| Intent accuracy | > {X%} |
| Containment | > {X%} |
```

## Gotchas

- **Users don't follow your flow**: People type in unexpected ways, change topics mid-conversation, and give incomplete information. Design for messiness, not just the happy path.
- **Fallback is your most important intent**: A good fallback ("I'm not sure I understood. Did you mean X, Y, or Z?") is better than a bad guess.
- **LLM-powered bots still need guardrails**: Using GPT/Claude for response generation? Add intent classification as a first layer to route and constrain, preventing hallucination and off-topic responses.
- **Test with real users, not team members**: Your team knows how the bot works and phrases things "correctly." Real users don't. Test with 10+ real users before launch.
- **Conversation logs are gold**: Review conversation logs weekly. Failed conversations reveal missing intents, confusing flows, and training data gaps.

## References

- For NLU training data best practices, see `references/nlu-training.md`
- For LINE/Messenger platform integration, see the ecom-conversational skill

