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 Bwkyd/wps-skills --skill wps-budgetgit clone --depth 1 https://github.com/Bwkyd/wps-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/bwkyd/wps-skills/wps-budget)<a href="https://agentmods.dev/skills/bwkyd/wps-skills/wps-budget"><img src="https://agentmods.dev/badge/skills/bwkyd/wps-skills/wps-budget/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/bwkyd/wps-skills/wps-budget"><img src="https://agentmods.dev/badge/skills/bwkyd/wps-skills/wps-budget.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.00082 | $0.02056 |
| Opus 5.5 | $0.00033 | $0.00822 |
| Sonnet 5.5 | $0.00016 | $0.00411 |
| Haiku 4.5 | $0.00008 | $0.00206 |
Grade A, and why
wps-budget 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 1mo 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 — 212 lines — stays where its author put it; the contents beside it link to each section on GitHub.
预算表/费用表生成器
选类型 → 填数据 → 自动公式 → 预算表搞定。
When to Use
- 制作年度/季度/月度预算表
- 项目预算编制
- 活动经费预算
- 预算执行情况分析
- 用户说"帮我做预算表""编制费用预算"
When NOT to Use
- 工资核算 → 使用
wps-salary - 财务报表 → 使用
wps-financial-report
预算模板类型
[1] 部门年度预算 → 人力/办公/差旅/培训等分项
[2] 项目预算 → 人工/材料/设备/外包/管理费
[3] 活动预算 → 场地/餐饮/物料/交通/宣传
[4] 家庭预算 → 收入/固定支出/可变支出/储蓄
[5] 营销预算 → 线上/线下/品牌/效果/公关
工作流程
Step 1: 确认预算要素
- 预算类型:部门/项目/活动
- 时间范围:年度/季度/月度
- 预算分类:需要哪些费用项
- 是否需要对比:预算vs实际
Step 2: 生成预算表
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, PatternFill, Border, Side, numbers
from openpyxl.utils import get_column_letter
import os
def create_budget(budget_type, items, output_path=None):
"""生成预算表"""
wb = Workbook()
ws = wb.active
ws.title = "预算表"
# 样式
header_fill = PatternFill('solid', fgColor='2C3E50')
header_font = Font(name='微软雅黑', size=11, bold=True, color='FFFFFF')
cat_fill = PatternFill('solid', fgColor='ECF0F1')
cat_font = Font(name='微软雅黑', size=11, bold=True)
body_font = Font(name='微软雅黑', size=10)
money_fmt = '#,##0.00'
pct_fmt = '0.0%'
thin = Side(style='thin')
border = Border(left=thin, right=thin, top=thin, bottom=thin)
# 标题
ws.merge_cells('A1:G1')
ws['A1'] = f"{'部门' if budget_type=='dept' else '项目'}预算表"
ws['A1'].font = Font(name='微软雅黑', size=16, bold=True)
ws['A1'].alignment = Alignment(horizontal='center')
# 表头
headers = ['序号', '费用类别', '费用项目', '预算金额',
'实际金额', '差异', '执行率']
for col, h in enumerate(headers, 1):
cell = ws.cell(row=3, column=col, value=h)
cell.font = header_font
cell.fill = header_fill
cell.alignment = Alignment(horizontal='center')
cell.border = border
# 列宽
widths = [6, 14, 20, 14, 14, 14, 10]
for i, w in enumerate(widths, 1):
ws.column_dimensions[get_column_letter(i)].width = w
# 填入数据
row = 4
seq = 1
for category, sub_items in items.items():
# 分类行
ws.merge_cells(start_row=row, start_column=2,
end_row=row, end_column=3)
ws.cell(row=row, column=1, value='').border = border
cat_cell = ws.cell(row=row, column=2, value=category)
cat_cell.font = cat_font
cat_cell.fill = cat_fill
cat_cell.border = border
# 分类小计公式
start = row + 1
end = row + len(sub_items)
for c in [4, 5]:
cell = ws.cell(row=row, column=c)
cell.value = f'=SUM({get_column_letter(c)}{start}:{get_column_letter(c)}{end})'
cell.number_format = money_fmt
cell.font = cat_font
cell.fill = cat_fill
cell.border = border
# 差异和执行率
ws.cell(row=row, column=6,
value=f'=D{row}-E{row}').number_format = money_fmt
ws.cell(row=row, column=6).fill = cat_fill
ws.cell(row=row, column=6).border = border
ws.cell(row=row, column=7,
value=f'=IF(D{row}=0,"",E{row}/D{row})').number_format = pct_fmt
ws.cell(row=row, column=7).fill = cat_fill
ws.cell(row=row, column=7).border = border
row += 1
for item_name, amount in sub_items.items():
ws.cell(row=row, column=1, value=seq).border = border
ws.cell(row=row, column=1).font = body_font
ws.cell(row=row, column=3, value=item_name).border = border
ws.cell(row=row, column=3).font = body_font
ws.cell(row=row, column=4, value=amount).border = border
ws.cell(row=row, column=4).number_format = money_fmt
ws.cell(row=row, column=5, value=0).border = border
ws.cell(row=row, column=5).number_format = money_fmt
ws.cell(row=row, column=6,
value=f'=D{row}-E{row}').number_format = money_fmt
ws.cell(row=row, column=6).border = border
ws.cell(row=row, column=7,
value=f'=IF(D{row}=0,"",E{row}/D{row})').number_format = pct_fmt
ws.cell(row=row, column=7).border = border
seq += 1
row += 1
# 合计行
ws.merge_cells(start_row=row, start_column=1,
end_row=row, end_column=3)
total_cell = ws.cell(row=row, column=1, value='合计')
total_cell.font = Font(name='微软雅黑', size=12, bold=True)
total_cell.alignment = Alignment(horizontal='center')
total_cell.fill = PatternFill('solid', fgColor='3498DB')
total_cell.font = Font(name='微软雅黑', size=12, bold=True, color='FFFFFF')
for c in [4, 5, 6]:
cell = ws.cell(row=row, column=c)
cell.value = f'=SUMPRODUCT(({get_column_letter(c)}4:{get_column_letter(c)}{row-1})*(A4:A{row-1}<>""))'
cell.number_format = money_fmt
cell.font = Font(name='微软雅黑', bold=True, color='FFFFFF')
cell.fill = PatternFill('solid', fgColor='3498DB')
cell.border = border
if not output_path:
output_path = '预算表.xlsx'
wb.save(output_path)
return os.path.abspath(output_path)
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 1mo ago First seen · 212 lines · 82 tokens per session scan A 08e127b00632
wps-budget is a skill published in the GitHub repository Bwkyd/wps-skills (10 stars, last pushed 5mo ago), licensed MIT. It adds 82 tokens to every session and 2,056 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-08-31.
Other skills, from other repositories
budget-planner
Turn a business plan into an annual or project budget with account lines, monthly spread, summaries and a separate assumptions sheet, delivered as an Excel workbook.
expense-report
Turn a pile of receipts into an expense claim summary that flags missing receipts, over-limit items and duplicates, delivered as an Excel workbook.
cwicr-report-generator
Generate professional cost estimation reports from CWICR calculations. HTML, PDF, Excel outputs with charts and breakdowns.
audit-xls
Audit spreadsheet, formula error detection, hardcoded cell finder, cross-sheet reference audit, workbook auditor, Excel model audit, financial model QA, spreadsheet review, cell dependency trace, formula integrity check.
xlsx-financials
Produce formatted .xlsx financial statement workbooks from XBRL statement data. Uses Bash + openpyxl (Python) following Anthropic FSI xlsx-author conventions for professional Excel output with calculation arc cross-validation.
mqc-chronicle-master
A document-preparation workflow that turns a collection of legal materials into a dated case timeline. It copies facts from the source, records dates, parties, page references, and conflicts, and produces Word, Excel, and a short visual version.