Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add hamzabellouch/agent-skills --skill csat-sentiment-triage-automationgit clone --depth 1 https://github.com/hamzabellouch/agent-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/hamzabellouch/agent-skills/csat-sentiment-triage-automation)<a href="https://agentmods.dev/skills/hamzabellouch/agent-skills/csat-sentiment-triage-automation"><img src="https://agentmods.dev/badge/skills/hamzabellouch/agent-skills/csat-sentiment-triage-automation/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/hamzabellouch/agent-skills/csat-sentiment-triage-automation"><img src="https://agentmods.dev/badge/skills/hamzabellouch/agent-skills/csat-sentiment-triage-automation.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00077 | $0.00857 |
| Opus 5.5 | $0.00031 | $0.00343 |
| Sonnet 5.5 | $0.00015 | $0.00171 |
| Haiku 4.5 | $0.00008 | $0.00086 |
Grade A, and why
csat-sentiment-triage-automation scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 18d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 89 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CSAT & Sentiment Triage Automation Skill Guide
This skill governs the integration of machine learning and LLM-driven sentiment evaluation to prioritize frustrated customers, flag churn indicators, and trigger automated escalations.
1. Sentiment & Churn Triage Architecture
[ Incoming Customer Message / Survey ]
|
v
[ Fast Sentiment & Intent Classifier ]
|-- Valence: Negative / Neutral / Positive
|-- Urgency Score (1 - 10)
|-- Churn Risk Triggers: "cancel", "refund", "unacceptable", "lawyer"
|
+---> High Urgency / Severe Negative (Score >= 8)
| |
| v
| [ Immediate Manager Slack Alert & P1 Queue Boost ]
|
+---> Mild / Standard Query
|
v
[ Normal Agent Assignment / AI Auto-Draft ]
2. Production Implementation (Python & Pydantic)
import json
from typing import Literal
from pydantic import BaseModel, Field
class SentimentTriageResult(BaseModel):
sentiment: Literal["VERY_NEGATIVE", "NEGATIVE", "NEUTRAL", "POSITIVE"]
urgency_score: int = Field(ge=1, le=10, description="1=low, 10=immediate crisis")
churn_risk: bool
detected_issues: list[str]
suggested_action: Literal["ESCALATE_TO_MANAGER", "PRIORITY_SUPPORT", "STANDARD_QUEUE", "OFFER_RETENTION"]
executive_summary: str
def build_triage_prompt(customer_message: str, account_tier: str) -> str:
return f"""You are an expert customer experience triage intelligence agent.
Analyze the following customer message and account context:
Customer Account Tier: {account_tier}
Message Content:
\"\"\"{customer_message}\"\"\"
Provide an objective assessment in JSON matching the schema:
- sentiment: VERY_NEGATIVE | NEGATIVE | NEUTRAL | POSITIVE
- urgency_score: 1 to 10
- churn_risk: true if the customer expresses intent to leave, cancel, or switch competitors
- detected_issues: list of core issues (e.g., "downtime", "billing error", "rude support")
- suggested_action: ESCALATE_TO_MANAGER | PRIORITY_SUPPORT | STANDARD_QUEUE | OFFER_RETENTION
- executive_summary: 1-sentence summary for the receiving agent
"""
def process_sentiment_webhook(triage_data: SentimentTriageResult, ticket_id: str):
"""Executes action based on structured sentiment classification."""
if triage_data.urgency_score >= 8 or triage_data.churn_risk:
# Boost ticket priority and notify escalation Slack channel
print(f"[URGENT ESCALATION] Ticket {ticket_id}: {triage_data.executive_summary}")
# Integration logic: emit webhook / update CRM
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 18d ago First seen · 89 lines · 77 tokens per session scan A c6acf21b8f6f
csat-sentiment-triage-automation is a skill published in the GitHub repository hamzabellouch/agent-skills (8 stars, last pushed today), licensed MIT. It adds 77 tokens to every session and 857 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-29.
Other skills, from other repositories
prompt-engineering
Universal prompt engineering techniques for any LLM. Use when crafting, optimizing, or reviewing prompts for AI models. Triggers on requests like "improve this prompt", "write a system prompt", "optimize my instructions", "help me prompt engineer", "audit this prompt", "review my prompt", or when building agentic…
fixing-prompt
Prompt: Prompt Refinement and Optimization.
feature-engineering
When building training datasets, designing feature pipelines, or debugging training-serving skew.
model-evaluation
When evaluating a trained model, comparing versions, or performing fairness analysis.
orchestration
When designing DAGs, debugging pipeline failures, or configuring retries.
streaming-patterns
When designing Kafka consumers/producers or implementing real-time pipelines.