← Back to Skills Marketplace
shing19

Ledger Project Expense Entry

by shing19 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
94
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install ledger-project-expense-entry
Description
Record natural-language project expense messages into ledger JSONL. Use when user sends "项目+支出" directly (e.g., "OpenClaw 服务器 89"), wants quick记账, or asks to...
README (SKILL.md)

Ledger Project Expense Entry

Use this skill for fast bookkeeping from short natural-language messages.

Defaults

  • direction: default 支出
  • currency: default CNY
  • date: default today (Asia/Taipei)

Only change defaults if user explicitly provides different values.

Parse target

Extract from message:

  • project (项目名)
  • description (消费内容)
  • amount (number)
  • optional date
  • optional currency
  • optional direction (收入/支出)
  • optional tags

If project and description are both present, build description as:

  • \x3Cproject> - \x3Cdescription>

If only one exists, use that field directly.

If amount is missing, ask one short clarification question.

Write command

IMPORTANT: Get today's date (YYYY-MM-DD) first, for determining which month file to write to.

# Get today's date in Asia/Taipei timezone
CURRENT_DATE=$(TZ='Asia/Taipei' date +%Y-%m-%d)

Then append via existing script:

python3 projects/scripts/add_ledger_entry.py \
  --data-root projects/data \
  --date "$CURRENT_DATE" \
  --direction \x3C支出|收入> \
  --amount \x3Cnumber> \
  --currency \x3CCNY|USD|JPY|...> \
  --description \x3Cproject-description> \
  --tags \x3Ctag1,tag2,...> \
  --source manual \
  --batch manual

Category catalog (must check before writing)

Before each write, check:

  • projects/docs/CATEGORY_CATALOG.md

Selection policy:

  • Prefer existing values from catalog (tags/major_category/type/currency).
  • If user gives a new tag not in catalog and meaning is clear, write it; otherwise ask one short confirmation.
  • If uncertain, keep optional fields empty rather than inventing noisy labels.

Tag suggestion rules

  • If user gives tags, use them directly.
  • If user does not give tags:
    • project/infra/subscription/domain/server -> 开发成本 / 服务器 / 域名 / 通讯网络 (pick the closest one)
    • meal/drink -> 外卖 / 下馆子 / 饮料零食
    • ride/transport -> 打车 / 交通卡 / 火车 / 飞机
  • If still uncertain, keep tags empty.

Response format

After appending, reply with:

  • month file path
  • one-line summary: 日期 | 流向 | 金额币种 | 描述
Usage Guidance
This skill will try to read projects/docs/CATEGORY_CATALOG.md and run projects/scripts/add_ledger_entry.py on your system — those files are not provided by the skill. Before enabling or using it: 1) confirm those paths exist in the target workspace and inspect the Python script to ensure it is safe and does only what you expect; 2) back up your ledger files or test in a copy; 3) prefer requiring user confirmation for each write (disable autonomous invocation if you want manual oversight); 4) if you do not have the repo structure, don’t enable the skill or modify the instructions to target a safe, reviewed tool. If you want, provide the add_ledger_entry.py and CATEGORY_CATALOG.md here (or point to a trusted repo) so I can evaluate them too.
Capability Analysis
Type: OpenClaw Skill Name: ledger-project-expense-entry Version: 1.0.0 The skill instructions in SKILL.md direct the agent to execute a shell command (running projects/scripts/add_ledger_entry.py) using parameters like description and tags derived directly from user-provided natural language. This creates a potential shell injection vulnerability if the agent fails to sanitize these inputs before execution. While the intent appears to be legitimate bookkeeping and no evidence of malicious exfiltration or persistence was found, the pattern of passing unvalidated user strings to a shell environment is a significant security risk.
Capability Assessment
Purpose & Capability
The name and description (append natural-language project expense messages into ledger JSONL) align with the SKILL.md actions (parse fields, pick date, write via an add_ledger_entry.py script). However the skill assumes existence of a specific repository layout (projects/data, projects/docs/CATEGORY_CATALOG.md, projects/scripts/add_ledger_entry.py) without declaring or bundling those files — reasonable for a repo-specific assistant, but unexpected in a generic skill.
Instruction Scope
The run instructions tell the agent to obtain the local date, read a local category catalog, and execute a local Python script to append data. That means the agent will access and modify files on disk and execute arbitrary code present at projects/scripts/add_ledger_entry.py. While these actions are coherent with 'append ledger entries', they grant filesystem and code-execution scope beyond purely conversational behavior and could be risky if the referenced files or script are untrusted or absent.
Install Mechanism
This is an instruction-only skill with no install spec and no bundled code — nothing will be downloaded or installed by the skill itself. That lowers supply-chain risk, but it also means the correctness/safety of runtime behavior depends entirely on local files and scripts.
Credentials
The skill requests no environment variables, credentials, or external config paths. The only required resources are local repository paths referenced in the instructions; these are proportionate to the described bookkeeping task but should be present and trusted.
Persistence & Privilege
always is false (normal). disable-model-invocation is false (agent may invoke autonomously). Autonomous invocation combined with file-write + script-execution instructions increases the blast radius if the agent is allowed to act without user confirmation. This is not automatically disallowed, but it's a meaningful consideration for safety.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ledger-project-expense-entry
  3. After installation, invoke the skill by name or use /ledger-project-expense-entry
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
initial publish
Metadata
Slug ledger-project-expense-entry
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Ledger Project Expense Entry?

Record natural-language project expense messages into ledger JSONL. Use when user sends "项目+支出" directly (e.g., "OpenClaw 服务器 89"), wants quick记账, or asks to... It is an AI Agent Skill for Claude Code / OpenClaw, with 94 downloads so far.

How do I install Ledger Project Expense Entry?

Run "/install ledger-project-expense-entry" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Ledger Project Expense Entry free?

Yes, Ledger Project Expense Entry is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Ledger Project Expense Entry support?

Ledger Project Expense Entry is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Ledger Project Expense Entry?

It is built and maintained by shing19 (@shing19); the current version is v1.0.0.

💬 Comments