SenseNova-Skills is a collection of modular skills that extend SenseNova models with office-assistant capabilities such as image generation, presentation creation, spreadsheet analysis, and research. The skills are designed for use in agent runtimes and can be combined into productivity workflows; the catalogue entries are individual skills and agents from this collection.
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 OpenSenseNova/SenseNova-Skills --skill trend-analysisgit clone --depth 1 https://github.com/OpenSenseNova/SenseNova-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/opensensenova/sensenova-skills/trend-analysis)<a href="https://agentmods.dev/skills/opensensenova/sensenova-skills/trend-analysis"><img src="https://agentmods.dev/badge/skills/opensensenova/sensenova-skills/trend-analysis/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/opensensenova/sensenova-skills/trend-analysis"><img src="https://agentmods.dev/badge/skills/opensensenova/sensenova-skills/trend-analysis.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00052 | $0.01210 |
| Opus 5 | $0.00026 | $0.00605 |
| Sonnet 5 | $0.00010 | $0.00242 |
| Haiku 4.5 | $0.00005 | $0.00121 |
Grade A, and why
trend-analysis 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 12d 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.
What it actually says
Step1 加载数据并配置环境,设置中文字体以确保可视化图表正常显示。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
# 设置中文字体,优先使用 WenQuanYi Zen Hei,备选 SimHei 和 DejaVu Sans
plt.rcParams['font.sans-serif'] = ['WenQuanYi Zen Hei', 'SimHei', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False
# 加载数据文件
file_path = 'your_data.xlsx'
df = pd.read_excel(file_path)
print(f"数据形状: {df.shape}")
df.head()
Step2 基于数据表现划分等级并设定差异化增长率,计算预测结果。
# 定义通用列名
group_col = '分组列名' # 示例:'部门'、'产品线'
target_col = '目标数值列名' # 示例:'销售额'、'产量'
# 计算各维度的总值并排序
performance_data = df.groupby(group_col, as_index=False)[target_col].sum().sort_values(by=target_col, ascending=False)
# 划分等级(前30%为高,后30%为低,其余为中等)
n = len(performance_data)
high_perf_threshold = int(0.3 * n)
low_perf_threshold = int(0.7 * n)
performance_data['等级'] = '中等'
performance_data.loc[:high_perf_threshold-1, '等级'] = '高'
performance_data.loc[low_perf_threshold:, '等级'] = '低'
# 设定预测增长率映射字典
growth_rate_map = {
'高': 0.10, # 10% 增长率
'中等': 0.08, # 8% 增长率
'低': 0.15 # 15% 增长率
}
performance_data['预测增长率'] = performance_data['等级'].map(growth_rate_map)
# 计算预测值 = 当前值 × (1 + 增长率),保留两位小数
performance_data['预测值'] = (performance_data[target_col] * (1 + performance_data['预测增长率'])).round(2)
performance_data[[group_col, target_col, '预测增长率', '预测值']].head()
Step3 综合分析预测结果,计算整体趋势指标并生成结论。
# 计算整体指标
current_total = performance_data[target_col].sum()
forecast_total = performance_data['预测值'].sum()
growth_rate_total = (forecast_total - current_total) / current_total if current_total != 0 else 0
print(f"当前总计: {current_total:,.2f}")
print(f"预测总计: {forecast_total:,.2f}")
print(f"整体增长率: {growth_rate_total:.2%}")
# 输出趋势结论
if growth_rate_total > 0.1:
conclusion = "整体趋势向好,预计实现显著增长。"
elif growth_rate_total > 0:
conclusion = "整体呈温和增长态势。"
else:
conclusion = "整体面临压力,需重点关注低绩效部分。"
print(f"趋势结论:{conclusion}")
Step4 可视化展示预测结果,通过横向柱状图对比当前与预测值,并标注等级与数值。
# 设置图形大小与高分辨率
plt.figure(figsize=(12, 8), dpi=100)
# 横向柱状图:当前与预测值对比
x_pos = np.arange(len(performance_data))
width = 0.35
plt.barh(x_pos - width/2, performance_data[target_col], width, label='当前值', color='skyblue', edgecolor='black', alpha=0.8)
plt.barh(x_pos + width/2, performance_data['预测值'], width, label='预测值', color='lightcoral', edgecolor='black', alpha=0.8)
# 添加数值标签
for i, (current, forecast) in enumerate(zip(performance_data[target_col], performance_data['预测值'])):
plt.text(current, i - width/2, f" {current:,.0f}", va='center', fontsize=9, color='black')
plt.text(forecast, i + width/2, f" {forecast:,.0f}", va='center', fontsize=9, color='black')
# 添加等级标签到 Y 轴
for i, level in enumerate(performance_data['等级']):
plt.text(0, i, f"({level}) ", va='center', ha='right', fontsize=9, color='gray', transform=plt.gca().get_yaxis_transform())
# 设置标题与标签
plt.xlabel(f'{target_col}')
plt.ylabel(f'{group_col}')
plt.title(f'各{group_col}当前与预测{target_col}对比', fontsize=14, fontweight='bold')
plt.yticks(x_pos, performance_data[group_col])
plt.legend()
plt.grid(axis='x', linestyle='--', alpha=0.5)
# 调整布局并显示
plt.tight_layout()
plt.show()
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.
- 12d ago First seen · 112 lines · 52 tokens per session scan A 125651950149
trend-analysis is a skill published in the GitHub repository OpenSenseNova/SenseNova-Skills (5,570 stars, last pushed yesterday), licensed MIT. It adds 52 tokens to every session and 1,210 once invoked, about $0.0003 per session on Opus 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-08-30.
Other skills, from other repositories
article-writer
Multi-style article creation skill. Supports 5 writing styles (deep analysis, practical guide, story-driven, opinion, news brief), including complete workflow: material collection → outline → content → formatting. Activated when users mention "write article", "write post", "create", or "draft".
skin-creator
Create and apply a two-asset LobsterAI visual skin from the user's style description. Use only when the AI Skin Designer kit supplies the structured skinpack workflow marker; do not use for ordinary theme or image requests.
content-planner
WeChat Official Account topic planning and content calendar management. Based on WeChat article search and trending analysis, generates differentiated topic recommendations and outputs structured content calendars. Activated when users mention "topic", "planning", "content calendar", "trending", or "what to write next…
music-search
Search cloud drives for downloadable music resources (songs, albums, lossless audio). Use this skill when the user wants to download a specific song or album. Do NOT use for general music information, lyrics, or recommendations.
stock-analyzer
A comprehensive stock deep analysis tool that combines real-time quotes, fundamental metrics, technical indicators, and growth analysis into a single professional report. Supports A-share, US stocks, HK stocks. Generates detailed investment recommendations with risk assessment and actionable trading strategies.
ha-skill-creator
Create, edit, improve, or audit Hope Agent skills. Use when the user wants to: (1) create a new skill from scratch, (2) edit or improve an existing skill, (3) review or clean up a SKILL.md file, (4) run evaluations to test skill effectiveness, (5) optimize skill descriptions for better trigger accuracy. Trigger…