skills/claude-skills-open/skills/finance/invoice-generator-agent/SKILL.md
Automatic invoice generation with CRM integration
npx skillsauth add aaaaqwq/claude-code-skills invoice-generator-agentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generates professional invoices for WeLabelData Inc. with CRM integration
By Deal ID:
cd $AGENTS_PATH/invoice-generator
python3 invoice_generator_agent.py --deal deal-enterprise-002
By client name:
python3 invoice_generator_agent.py --client "Enterprise Corp"
Interactive mode (shows all deals with stage='delivered'):
python3 invoice_generator_agent.py --interactive
Dry-run (check without writing):
python3 invoice_generator_agent.py --dry-run --deal deal-enterprise-002
✓ Invoice #100 generated
Client: Client D Inc.
Amount: $1,000.00 USD
Description: Training services
Files: docs/invoices/Invoice_100_WeLabelData_ClientD.pdf
Review the invoice and choose:
1. Open PDF for review
2. Send to client now
3. Skip sending (manual delivery)
4. Cancel (delete invoice)
Email sending is not yet implemented; the agent will show instructions:
Email sending not yet implemented in this version.
Please send the invoice manually using your email client.
To: [email protected]
Subject: Invoice #100 - WeLabelData - Training services
Attachment: docs/invoices/Invoice_100_WeLabelData_ClientD.pdf
Use skill /email-send-direct or google-tools to send.
IMPORTANT: The agent ALWAYS requires human review before sending.
If the user chooses "Cancel":
The agent automatically maps CRM companies → client keys for generate_invoice.py:
| Client Key | Company patterns | |-----------|-----------------| | clienta | clienta, doe, clientk | | clientb | clientb | | clientc | clientc | | clientd | clientd | | cliente | cliente, clientetech |
Unknown clients → custom client with company.name
sales/crm/relationships/deals.csvsales/crm/relationships/clients.csvsales/crm/contacts/companies.csvsales/crm/contacts/people.csvdocs/company/invoice_tracker.jsondocs/invoices/Invoice_{n}_WeLabelData_{Client}.htmldocs/invoices/Invoice_{n}_WeLabelData_{Client}.pdfsales/crm/relationships/deals.csv (update: stage, invoice_date, invoice_number)sales/crm/activities.csv (append)docs/company/invoice_tracker.json (increment)agents/data/invoice_generator_log.json| Error | Behavior | |-------|----------| | Deal not found | Exit with message, suggest --interactive | | Deal already has invoice | Warn, ask for confirmation to regenerate | | Invalid stage | Exit, explain which stages are valid ('delivered', 'in_progress') | | generate_invoice.py fail | Show stderr, exit without CRM update | | PDF generation fail | Save HTML, continue with CRM update | | CRM write fail | Critical, save files but warn about manual CRM fix | | Telegram fail | Warning, continue (non-critical) |
python3 invoice_generator_agent.py --dry-run --deal deal-enterprise-002
Shows parameters without creating files or CRM updates.
python3 invoice_generator_agent.py --interactive
# Select deal
# Review invoice
# Choose "4. Cancel"
# Verify that files are deleted, invoice_tracker unchanged
python3 invoice_generator_agent.py --deal deal-enterprise-002
python3 invoice_generator_agent.py --client "Client D"
python3 invoice_generator_agent.py --interactive
python3 invoice_generator_agent.py --no-approve --deal deal-enterprise-002
Auto-skip sending, just generates and logs.
Invoice numbering uses fcntl.flock() for atomic increment:
Generating invoice #100...
==================================================
✓ Invoice #100 generated
==================================================
Client: Client D Inc.
Contact: Bob
Amount: $1,000.00 USD
Description: Training services
==================================================
Files:
PDF: /Users/.../docs/invoices/Invoice_100_WeLabelData_ClientD.pdf
HTML: /Users/.../docs/invoices/Invoice_100_WeLabelData_ClientD.html
==================================================
Review the invoice and choose:
1. Open PDF for review
2. Send to client now
3. Skip sending (manual delivery)
4. Cancel (delete invoice)
Choice [3]: 3
✓ Done! Invoice #100 generated successfully.
Telegram notification:
Invoice Generated
Invoice #100 | $1,000.00 USD
Client: Client D Inc. (Bob)
Description: Training services
Status: Skipped
Files: /Users/.../Invoice_100_WeLabelData_ClientD.pdf
Deal: deal-clientd-001 → stage updated to 'invoiced'
/invoice - original skill (direct call to generate_invoice.py)/email-send-direct - for sending email/log-activity - for logging CRM activities/telegram-send - for notificationstesting
通用自媒体文章自动发布工具。支持百家号、搜狐号、知乎、微信公众号、小红书、抖音号六个平台的自动化发布流程。使用Playwright自动化实现平台导航和发布,支持通过storageState管理Cookie实现账号切换。
development
# SKILL.md - Model Configuration Status (mcstatus) ## 触发条件 - `/mcstatus` 命令 - 用户询问模型配备、模型配置、model status、模型列表等 ## 功能 实时生成 Agent + Cron 的模型配置报告,展示当前所有 agent 的主模型/fallback链和所有 cron 任务的模型分配。 ## 执行步骤 ### Step 1: 收集 Agent 模型配置 读取各 agent 的 models.json 获取主模型和 fallback 链: ```bash for agent in main ops code quant data research content market finance pm law product sales batch; do config=$(cat ~/.openclaw/agents/$agent/agent/models.json 2>/dev/null) if [ -n "$config" ]; then echo "=== $agent
tools
MCP 服务器智能管理助手。自动检测 MCP 可用性、智能开关、功能问答,提供人性化的 MCP 管理体验。
tools
从GitHub搜索并自动安装配置MCP(Model Context Protocol)服务器工具到Claude配置文件。当用户需要安装MCP工具时触发此技能。工作流程:搜索GitHub上的MCP项目 -> 提取npx配置 -> 添加到~/.claude.json -> 处理API密钥(如有)。