escalation
Escalate unresolvable or sensitive requests to a human agent by recording an escalation entry. Use when the user asks to speak to a human, the bot cannot…
Loads CSV, Excel, and JSON data files, performs statistical analysis, and generates charts and reports. Use when the user asks to analyze a dataset, compute statistics, create visualizations, find trends, or produce a data report.
$ npx -y skills add 0xranx/golembot --skill data-analysis --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/data-analysisContext preview
The summary Claude sees to decide when to auto-load this skill.
Loads CSV, Excel, and JSON data files, performs statistical analysis, and generates charts and reports. Use when the user asks to analyze a dataset, compute statistics, create visualizations, find trends, or produce a data report.
name: data-analysis description: "Loads CSV, Excel, and JSON data files, performs statistical analysis, and generates charts and reports. Use when the user asks to analyze a dataset, compute statistics, create visualizations, find trends, or produce a data report."
Process data files in the `data/` directory, perform analysis, and output reports to `reports/`.
1. **Identify the data source** — List available files and confirm with the user which to analyze:
ls data/
2. **Load and inspect the data** — Use Python to read the file and show a summary:
import pandas as pd
df = pd.read_csv("data/sales.csv") # or read_excel / read_json
print(f"Shape: {df.shape}")
print(f"Columns: {list(df.columns)}")
print(df.dtypes)
print(df.describe())
print(f"Missing values:\n{df.isnull().sum()}")3. **Clean the data** — Handle missing values, fix types, remove duplicates:
df = df.drop_duplicates()
df["date"] = pd.to_datetime(df["date"], errors="coerce")
df["amount"] = pd.to_numeric(df["amount"], errors="coerce")
df = df.dropna(subset=["date", "amount"])
print(f"Clean shape: {df.shape}")4. **Analyze** — Compute the requested statistics or aggregations:
# Example: monthly revenue trend
monthly = df.groupby(df["date"].dt.to_period("M"))["amount"].sum()
print(monthly)
# Example: correlation matrix
print(df[["amount", "quantity", "discount"]].corr())5. **Visualize** — Generate charts and save to `reports/`:
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
monthly.plot(kind="bar", title="Monthly Revenue")
plt.tight_layout()
plt.savefig("reports/monthly_revenue.png", dpi=150)
plt.close()
print("Chart saved to reports/monthly_revenue.png")6. **Write the report** — Save a Markdown report to `reports/`:
with open("reports/analysis_report.md", "w") as f:
f.write("# Analysis Report\n\n")
f.write("## Summary\n")
f.write(f"- Total records: {len(df)}\n")
f.write(f"- Date range: {df['date'].min()} to {df['date'].max()}\n")
f.write(f"- Total revenue: {df['amount'].sum():,.2f}\n\n")
f.write("## Charts\n")
f.write("\n")
print("Report saved to reports/analysis_report.md")After each step, verify before proceeding:
For complex or specialized calculations, use the `calc.py` helper script:
python calc.py --input data/sales.csv --operation regression --output reports/regression.json
Analysis reports should follow this structure:
# [Analysis Topic] Report ## Summary - Key finding 1 - Key finding 2 ## Data Overview - Records: N rows - Time range: ... ## Detailed Analysis ... ## Recommendations ...
Any Agent × Any Provider × Anywhere. Connect Cursor, Claude Code, OpenCode, or Codex to Slack, Telegram, Discord, Feishu, DingTalk, WeCom, WeChat — with any LLM provider.
Repo: 0xranx/golembot
Escalate unresolvable or sensitive requests to a human agent by recording an escalation entry. Use when the user asks to speak to a human, the bot cannot…
Handle everyday conversation, answer questions, manage files, take notes, run scripts, and maintain persistent memory across sessions. Use when the user asks a…
Format responses for instant messaging platforms such as Lark, DingTalk, WeCom, Slack, and Telegram. Controls response length, Markdown formatting, tone, group…
Search, read, create, and update knowledge base entries via MCP-connected KB tools. Use when the user asks to look up documentation, find existing articles,…
Send proactive messages to IM groups or individual users via the gateway Send API. Use when the user says to send, post, notify, forward, or tell someone a…
Coordinates responses between multiple GolemBot instances in a shared fleet. Use when the bot operates in a group chat with other bots, needs to decide whether…