Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Sync and update the community FAQ from Discord conversations, WhatsApp groups, and GitHub issues. Identifies recurring questions, adds new entries, and keeps the FAQ as a living knowledge base. Use when user says 'update faq', 'sync faq', 'community faq', 'frequently asked questions', or when running community routines that detect unanswered/recurring questions.
.claude/skills/evolution-foundation-pulse-faq-sync/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 93% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 66% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 94% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 108% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 156% | 0% |
Routine that keeps the community FAQ always updated, fed by questions from Discord, WhatsApp, and GitHub issues.
Always respond in English.
workspace/community/[C] FAQ.mdThis is the single source of truth file. All agents and support bots should consult this file.
The file follows this format:
markdown# FAQ — Community > Automatically updated. Last sync: {YYYY-MM-DD HH:MM} > Sources: Discord (#help, #feedback) + GitHub Issues > Total: {N} questions --- ## Installation & Setup <!-- tag: installation, setup, docker, deploy --> ### How to install the main API via Docker? **Answer:** [clear and direct answer] **Source:** Discord #help (recurring) | [Official doc link if available] **Added:** YYYY-MM-DD ### How to configure SSL/HTTPS? **Answer:** [...] **Source:** GitHub YOUR_ORG/main-api#123 **Added:** YYYY-MM-DD --- ## Configuration <!-- tag: config, env, variables, webhook --> ### How to configure webhooks? ... --- ## Integrations <!-- tag: whatsapp, telegram, typebot, n8n, chatwoot --> ... ## Evo CRM <!-- tag: crm, agents, pipeline, leads --> ... ## Evo Go <!-- tag: evogo, go, manager --> ... ## Billing & Licenses <!-- tag: license, plan, price, payment --> ... ## Common Errors <!-- tag: error, bug, 503, 401, timeout --> ...
Read workspace/community/[C] FAQ.md. If it does not exist, create it with the base structure.
Count how many entries exist and which categories.
From Discord (last 24h): Use /discord-get-messages on channels:
🆘・help (ID do canal de help)🆘・feedback💬・chat-ptIdentify messages that are questions (end in ?, ask for help, report errors).
From GitHub (last 24h):
bash# Issues abertas recentemente nos 5 repos gh issue list --repo YOUR_ORG/main-api --state open --json title,body,labels,createdAt --limit 10 gh issue list --repo YOUR_ORG/crm-product --state open --json title,body,labels,createdAt --limit 10 gh issue list --repo YOUR_ORG/go-service --state open --json title,body,labels,createdAt --limit 10 gh issue list --repo YOUR_ORG/crm-community --state open --json title,body,labels,createdAt --limit 10 gh issue list --repo YOUR_ORG/methodology --state open --json title,body,labels,createdAt --limit 5
Filter issues that are questions or recurring bugs.
From WhatsApp (last 24h): Use /int-whatsapp to fetch messages from groups:
bashpython3 {project-root}/.claude/skills/int-whatsapp/scripts/whatsapp_client.py messages_24h
Filter messages that are questions (end in ?, ask for help, report errors, ask for configuration guidance). Mark source as "WhatsApp {group name}".
From Linear — "Evolution Suporte" Project: Use Linear MCP to fetch recently resolved issues from the paid support project:
list_issues(project="Evolution Suporte", state="Done", updatedAt="-P1D")Resolved issues from paid support are a gold mine for the FAQ — these are real client problems with validated solutions. For each resolved issue:
For each question found:
closed with label solved/resolved. Issues with no replies or only community speculation → SKIP.state=Done AND a resolution comment from the assignee. Cite the issue ID + resolution comment.For each new question that passed the Step 3 gate:
[pending: {specific missing detail}] inline and flag for follow-up — do not fill the gap with generic knowledge.For existing questions:
For existing questions:
Update the FAQ header with:
Present a short summary:
## FAQ Sync — {date}
Questions in FAQ: {total}
New added: {N}
Updated: {N}
Skipped (no verified answer): {N}
Sources: Discord ({N}) + GitHub ({N}) + WhatsApp ({N}) + Linear ({N})
New:
- {question 1} → {category}
- {question 2} → {category}
Skipped (pending documentation):
- {question} — reason: no reply in source / reply from non-team / etc.The "Skipped" block is mandatory — it gives visibility on questions the community is asking but no one has answered, which is itself a signal worth tracking.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 7,142 | 6,519 | -9% | 1 | 1 | 0% | 1,127 | 2,358 | +109% | 0 | 0 | — |
case-02 | fail→fail | 17,830 | 5,825 | -67% | 1 | 1 | 0% | 2,789 | 2,110 | -24% | 0 | 0 | — |
case-03 | fail→fail | 7,250 | 7,994 | +10% | 1 | 1 | 0% | 527 | 2,384 | +352% | 0 | 0 | — |
case-04 | fail→fail | 6,193 | 3,130 | -49% | 1 | 1 | 0% | 1,004 | 2,348 | +134% | 0 | 0 | — |
case-05 | fail→fail | 11,076 | 6,313 | -43% | 1 | 1 | 0% | 1,780 | 2,980 | +67% | 0 | 0 | — |
case-06 | pass→pass | 5,283 | 3,103 | -41% | 1 | 1 | 0% | 830 | 2,345 | +183% | 0 | 0 | — |
case-07 | fail→fail | 7,917 | 5,431 | -31% | 1 | 1 | 0% | 1,311 | 2,843 | +117% | 0 | 0 | — |
case-08 | pass→pass | 9,090 | 6,498 | -29% | 1 | 1 | 0% | 1,410 | 3,021 | +114% | 0 | 0 | — |
case-09 | fail→pass | 9,685 | 5,100 | -47% | 1 | 1 | 0% | 1,418 | 2,731 | +93% | 0 | 0 | — |
case-10 | fail→pass | 10,137 | 5,431 | -46% | 1 | 1 | 0% | 1,630 | 2,708 | +66% | 0 | 0 | — |
case-11 | fail→pass | 9,515 | 5,479 | -42% | 1 | 1 | 0% | 1,402 | 2,723 | +94% | 0 | 0 | — |
case-12 | fail→pass | 7,462 | 4,292 | -42% | 1 | 1 | 0% | 1,220 | 2,536 | +108% | 0 | 0 | — |
case-13 | fail→pass | 6,641 | 4,363 | -34% | 1 | 1 | 0% | 1,048 | 2,682 | +156% | 0 | 0 | — |
case-14 | fail→fail | 3,979 | 2,719 | -32% | 1 | 1 | 0% | 605 | 2,297 | +280% | 0 | 0 | — |
case-15 | pass→pass | 4,048 | 4,570 | +13% | 1 | 1 | 0% | 601 | 2,543 | +323% | 0 | 0 | — |
case-16 | fail→pass | 10,722 | 4,543 | -58% | 1 | 1 | 0% | 1,916 | 2,667 | +39% | 0 | 0 | — |
case-17 | fail→pass | 10,525 | 3,212 | -69% | 1 | 1 | 0% | 1,818 | 2,375 | +31% | 0 | 0 | — |
case-18 | fail→pass | 6,772 | 3,159 | -53% | 1 | 1 | 0% | 1,021 | 2,454 | +140% | 0 | 0 | — |
case-19 | pass→pass | 9,173 | 6,673 | -27% | 1 | 1 | 0% | 1,657 | 2,997 | +81% | 0 | 0 | — |
case-20 | pass→pass | 11,733 | 9,728 | -17% | 1 | 1 | 0% | 1,930 | 3,425 | +77% | 0 | 0 | — |
case-21 | pass→pass | 10,260 | 10,436 | +2% | 1 | 1 | 0% | 1,893 | 3,641 | +92% | 0 | 0 | — |
case-22 | pass→pass | 4,703 | 5,340 | +14% | 1 | 1 | 0% | 909 | 2,738 | +201% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +36 percentage points is the difference between those two pass rates over the 19 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.