Response Format Skill
Skill: response-format
Version: 2.0.0
For: Toh Framework v1.4.0+
Used by: ALL Agents (MANDATORY)
π― Purpose
Define the standard response format that ALL agents MUST use to ensure users:
- Know what AI did for them
- Know what they received
- Know what they need to do next (if anything)
Golden Rule: "If the user has to ask a follow-up question, your response wasn't complete enough."
π¨ The Problem We're Solving
β Bad Response (Anti-Pattern)
AI: "Done! The automatic ngrok URL detection system is ready.
Files created:
- /src/app/api/ngrok/detect/route.ts
- /src/lib/webhook-url.ts
How to use:
1. Open ngrok: ngrok http 3000
2. Open Settings page..."
User: "Wait, so I need to run ngrok myself first?"
β User had to ask because AI didn't clearly state what USER must do
β Good Response (Required Format)
AI: "## β
What I Did
**Files created:**
- `/src/app/api/ngrok/detect/route.ts` - Auto-detect ngrok URL
- `/src/lib/webhook-url.ts` - Webhook URL utility
---
## π What You Get
- β
Automatic ngrok URL detection
- β
Webhook URL updates dynamically
- β
Status badge on Settings page
---
## π What You Need To Do
### Right now:
1. **Run ngrok first:** `ngrok http 3000`
2. Copy the URL you get (e.g., https://xxxx.ngrok.io)
3. Open Settings β Chatbot β Channels tab
4. The system will detect your ngrok URL automatically
β οΈ **Important:** You must run ngrok yourself. The system only detects
the URL - it doesn't start ngrok for you."
β User knows exactly what to do without asking
π Required Response Format
The Three Sections (MANDATORY)
Every response after completing work MUST include these three sections:
## β
What I Did
**Files created:**
- `/path/to/file.tsx` - Brief description
**Files modified:**
- `/path/to/file.tsx` - What changed
**Dependencies installed:** (if any)
- `package-name` - Purpose
---
## π What You Get
- β
Feature/benefit 1 (user-facing, not technical)
- β
Feature/benefit 2
- β
Feature/benefit 3
**Preview:** http://localhost:3000/path (if applicable)
---
## π What You Need To Do
### Right now:
[Clear, actionable steps OR "Nothing! Just open the preview and check it out."]
### Optional next steps:
[Suggestions for what to do next]
π Section Guidelines
Section 1: β What I Did
Purpose: Tell user exactly what was created/changed
Must include:
- File paths with brief descriptions
- Dependencies installed (if any)
- Configuration changes (if any)
Example:
## β
What I Did
**Files created:**
- `/src/app/dashboard/page.tsx` - Main dashboard page
- `/src/components/dashboard/StatsCard.tsx` - Statistics card component
- `/src/hooks/useStats.ts` - Hook for fetching stats
**Files modified:**
- `/src/components/Sidebar.tsx` - Added dashboard link
- `/src/app/layout.tsx` - Added navigation item
**Dependencies installed:**
- `recharts` - For charts and graphs
Section 2: π What You Get
Purpose: Describe benefits in USER terms, not technical terms
Must include:
- User-facing features/benefits
- What they can now do
- Preview URL (if UI was created)
β Good (User perspective):
## π What You Get
- β
Dashboard page ready to use
- β
Real-time statistics display
- β
Charts showing 7-day trends
- β
Responsive on all devices
- β
Dark mode support
**Preview:** http://localhost:3000/dashboard
β Bad (Technical perspective):
## π What You Get
- β
Created page.tsx successfully
- β
Imported recharts library
- β
Used Tailwind CSS classes
Section 3: π What You Need To Do
Purpose: Tell user EXACTLY what action they need to take
Three scenarios:
Scenario A: No action needed
## π What You Need To Do
### Right now:
Nothing! β¨ Just open http://localhost:3000/dashboard and check it out.
### Want to customize?
- Change colors: Tell me your preferred color scheme
- Add more charts: Tell me what data you want to visualize
Scenario B: User action required
## π What You Need To Do
### Right now:
1. **Run ngrok:** `ngrok http 3000`
2. **Copy the HTTPS URL** you get (e.g., https://abc123.ngrok.io)
3. **Tell me the URL** so I can configure the webhook
β οΈ **Why ngrok?** LINE webhooks require HTTPS. Ngrok creates a secure tunnel to your localhost.
Scenario C: Multiple options
## π What You Need To Do
### Choose your path:
**Option A: Use mock data first (Recommended)**
- Nothing to do! Open the preview and test the UI
- We'll connect real data later
**Option B: Connect Supabase now**
1. Create a project at https://supabase.com
2. Copy your API keys
3. Tell me "Ready to connect Supabase"
Which would you prefer?
π― Context-Specific Templates
After Creating UI
## β
What I Did
**Files created:**
- [list files with descriptions]
---
## π What You Get
- β
[Feature 1]
- β
[Feature 2]
- β
[Feature 3]
**Preview:** http://localhost:3000/[path]
---
## π What You Need To Do
### Right now:
Open http://localhost:3000/[path] and check it out!
### Want changes?
- Different layout? Just describe what you want
- Different colors? Tell me your preference
After Fixing a Bug
## β
What I Fixed
**Problem:** [Description of the bug]
**Root cause:** [What was causing it]
**Files modified:**
- [list files with what changed]
---
## π Result
- β
[Problem] is now fixed
- β
[Any side benefits]
---
## π What You Need To Do
### Right now:
Refresh the page (or hard refresh: Cmd+Shift+R) and test again.
### Still having issues?
Let me know and I'll investigate further.
After Backend Integration
## β
What I Did
**Integration:** [Supabase/API/etc.]
**Files created:**
- [list files]
**Environment variables needed:**
- `SUPABASE_URL` - Your Supabase project URL
- `SUPABASE_ANON_KEY` - Your public API key
---
## π What You Get (after setup)
- β
[Feature 1]
- β
[Feature 2]
---
## π What You Need To Do
### Step 1: Get your API keys
1. Go to https://supabase.com/dashboard
2. Open your project (or create one)
3. Go to Settings β API
### Step 2: Add to your project
Create/edit `.env.local` and add:
SUPABASE_URL=your_url_here SUPABASE_ANON_KEY=your_key_here
### Step 3: Restart and test
1. Restart dev server: `npm run dev`
2. Test at http://localhost:3000/[path]
### Step 4: Let me know
Tell me "Keys are set" and I'll continue with the next step.
β οΈ Rules (MUST Follow)
ALWAYS DO:
- β Include all three sections in every completion response
- β State clearly what user needs to do (even if it's "nothing")
- β Provide preview URLs for UI work
- β Explain WHY if user needs to do something non-obvious
- β Anticipate follow-up questions and answer them preemptively
NEVER DO:
- β End with just "Done!" without the three sections
- β Use technical jargon in "What You Get" section
- β Leave user guessing what to do next
- β Forget to mention required user actions (like running ngrok)
- β Skip the preview URL when UI was created
β Pre-Response Checklist
Before sending ANY completion response, verify:
| Check | Question |
|---|---|
| β‘ | Did I include "β What I Did" section? |
| β‘ | Did I include "π What You Get" section? |
| β‘ | Did I include "π What You Need To Do" section? |
| β‘ | Is "What You Get" written from USER perspective? |
| β‘ | Is "What You Need To Do" clear and actionable? |
| β‘ | If nothing needed, did I explicitly say "Nothing needed"? |
| β‘ | If preview exists, did I include the URL? |
| β‘ | Can user follow my instructions without asking questions? |
If any check fails β Fix before sending!
π Language Adaptation
The response format sections should adapt to the project's language setting:
English (Default)
- β What I Did
- π What You Get
- π What You Need To Do
Thai
- β ΰΈͺΰΈ΄ΰΉΰΈΰΈΰΈ΅ΰΉΰΈΰΈ³ΰΉΰΈ«ΰΉ
- π ΰΈͺΰΈ΄ΰΉΰΈΰΈΰΈ΅ΰΉΰΈΰΈΈΰΈΰΉΰΈΰΉ
- π ΰΈͺΰΈ΄ΰΉΰΈΰΈΰΈ΅ΰΉΰΈΰΈΈΰΈΰΈΰΉΰΈΰΈΰΈΰΈ³
Other Languages
Translate section headers while keeping the same structure.
π Integration with Agents
ALL agents must:
- Load this skill in their skills list
- Use this format in PHASE 5: REPORT (or equivalent delivery phase)
- Never skip sections even if they seem obvious
# In agent file
skills:
- response-format # MANDATORY for all agents
- [other skills...]
Version 2.0.0 - Consolidated from response-format and response-excellence skills
