Tax
A local-first, year-round tax memory system.
Tax is designed to help users capture tax-relevant facts throughout the year, prevent missing documents, and prepare organized handoff packages for CPAs, EAs, accountants, or tax software.
This skill is not a tax advisor.
It is a tax fact capture, organization, and handoff system.
Core Product Principle
Tax problems are usually not calculation problems first.
They are information fragmentation problems first.
By the time filing season arrives, users often already have the necessary information — but it is scattered across email, paper mail, receipts, payment platforms, brokerages, bank accounts, and memory.
This skill exists to:
- - capture tax-relevant facts early
- preserve them in structured local records
- track what may be missing
- prepare clean outputs for professional review
What This Skill Does
This skill can:
- - Capture tax-relevant events from natural language
- Log tax documents as they are received
- Track expenses and receipts that may matter during filing
- Record tax authority notices
- Maintain questions for a CPA or tax professional
- Compare current-year records with prior-year patterns
- Surface potentially missing forms or incomplete records
- Generate structured year-end and pre-filing handoff summaries
- Store everything locally
This skill cannot:
- - Provide tax advice
- Interpret tax law
- Recommend filing positions
- Determine whether a specific item is deductible
- Calculate final tax liability
- Replace a CPA, EA, attorney, or licensed tax professional
Safety Boundary: Facts vs. Judgments
This skill records facts.
It does not make legal or tax judgments.
Examples of facts:
- - "Received a 1099-NEC from Client A"
- "Spent $120 on a client meal today"
- "Received an IRS notice"
- "Need to ask CPA about contractor payment treatment"
Examples of judgments this skill does NOT make:
- - whether a payment is deductible
- what percentage may be deductible
- whether a filing position is appropriate
- how a tax authority will interpret a record
When users ask judgment questions, this skill should:
- 1. Record the fact or question
- Mark it for professional review
- Encourage confirmation with a licensed professional
Privacy & Storage
All data is stored locally only.
Base path:
INLINECODE0
No cloud storage is required.
No tax authority systems are accessed.
No external APIs are required for storage.
No documents are uploaded unless the user independently chooses to do so outside this skill.
Tax Memory Model
This skill organizes data into six local layers:
1. Event Capture Layer
INLINECODE1
Raw tax-relevant facts captured from natural language:
- - expenses
- documents received
- notices
- questions for CPA
- reminders
- unknown tax-relevant events
2. Document Inventory
INLINECODE2
Formal forms and document records:
- - W-2
- 1099 series
- K-1
- mortgage interest statements
- property tax statements
- donation receipts
- brokerage tax forms
- other filing-year forms
3. Expected Documents
INLINECODE3
Predicted or expected forms based on:
- - prior-year history
- recurring issuers
- user-declared accounts or entities
- manually added expectations
4. Expense & Receipt Records
INLINECODE4
Structured expense or receipt facts that may need professional review later.
5. Notices & Questions
notices.json
INLINECODE6
Tracks:
- - tax authority notices
- unresolved follow-up items
- questions the user wants to ask a CPA
6. Year State
INLINECODE7
Tracks annual status:
- - capturing
- reconciling
- prefiling
- filed
- archived
- noticefollowup
Product Behaviors
Frictionless Capture
Users should be able to speak naturally.
Example:
"Today I spent 120 dollars taking a client to lunch."
The skill should convert that into structured local records with minimal follow-up, preserving raw text even when some fields remain uncertain.
Capture first.
Refine later.
Cross-Year Memory
Prior-year records help predict current-year missing items.
Example:
"If Robinhood issued a 1099-B last year but none has been logged this year, surface that as a possible missing document."
This is a reminder system, not a legal conclusion.
CPA Handoff
The final output of the skill is not tax advice.
It is a clean handoff package for professional review.
A handoff package may include:
- - filing snapshot
- income document inventory
- expense summary by category
- outstanding notices
- missing items
- questions for CPA
Recommended Usage
During the Year
Use this skill when:
- - a form arrives
- a receipt or expense happens
- a tax notice is received
- a tax-related question comes up
- the user wants to avoid losing track of details
Before Filing
Use this skill to:
- - compare expected vs received forms
- surface missing items
- summarize expense categories
- prepare a CPA handoff package
- collect unresolved questions
After Filing
Use this skill to:
- - archive the year
- mark unresolved notices
- carry forward expected recurring documents
Core Workflows
1. Capture a tax-relevant event
Example user messages:
- - "Today I paid $49 for Adobe"
- "I received a 1099 from Stripe"
- "IRS sent me a letter"
- "Remind me to ask my CPA about this contractor payment"
Internal action:
- - classify event
- save raw text
- extract structured fields where possible
- store locally
- mark uncertain items for follow-up
2. Log a document
Use when a formal tax form or relevant supporting document is received.
3. Record an expense or receipt
Use when the user mentions a business, rental, freelance, or otherwise tax-relevant payment or receipt.
Important:
The skill records the fact and category.
It does not determine tax treatment.
4. Record a notice
Use when the user mentions receiving communication from a tax authority.
5. Check missing items
Use prior-year memory and current-year records to surface items that may still be missing.
6. Prepare CPA handoff package
Generate a structured Markdown handoff summary for professional review.
7. Generate annual summary
Generate Markdown and CSV annual summary outputs for review, recordkeeping, or handoff support.
Files
- -
ledger_events.json — captured raw tax-relevant events - INLINECODE9 — formal document inventory
- INLINECODE10 — expected or predicted forms
- INLINECODE11 — structured expense records
- INLINECODE12 — authority notices
- INLINECODE13 — open professional review questions
- INLINECODE14 — annual workflow state
- INLINECODE15 — generated Markdown and CSV handoff outputs
Scripts
| Script | Purpose |
|---|
| INLINECODE16 | Main entrypoint for tax-relevant natural language capture |
| INLINECODE17 |
Log a formal tax document |
|
track_expense.py | Record an expense or receipt fact |
|
log_notice.py | Record a tax authority notice |
|
add_cpa_question.py | Save a question for professional review |
|
check_missing.py | Compare prior-year and current-year document history to surface possible missing documents |
|
prep_meeting.py | Generate CPA-ready handoff package |
|
generate_summary.py | Produce Markdown and CSV annual summary outputs |
|
archive_year.py | Archive a filing year and roll forward expected items |
|
set_year_state.py | Update annual tax workflow status |
Response Style Rules
When using this skill:
- - Prefer operational clarity over explanation
- Capture facts first, even if incomplete
- Preserve raw user wording when helpful
- Clearly distinguish recorded facts from unresolved judgments
- Use phrases like:
- "recorded"
- "captured"
- "flagged for professional review"
- "possible missing item"
- "deductible"
- "allowed deduction"
- "you should file"
- "you owe"
- "safe harbor"
- "final liability"
Standard Boundary Response
If a user asks:
- - "Can I deduct this?"
- "How much tax do I owe?"
- "Should I file this as X or Y?"
- "Will the IRS accept this?"
The skill should respond in this pattern:
- 1. Record the underlying fact
- Offer to log it as a CPA review item
- Explain that final tax treatment requires a licensed professional
Disclaimer
This skill is for organization, recordkeeping, and professional handoff only.
Tax outcomes depend on jurisdiction, dates, filing status, entity structure, elections, and documentation quality.
Always confirm tax treatment, filing positions, and calculations with a licensed CPA, EA, attorney, or other qualified tax professional.
税务
一个本地优先、全年可用的税务记忆系统。
税务系统旨在帮助用户全年捕捉与税务相关的事实,防止遗漏文件,并为注册会计师、注册税务师、会计师或税务软件准备条理清晰的交接包。
此技能并非税务顾问。
它是一个税务事实捕捉、整理和交接系统。
核心产品原则
税务问题通常首先不是计算问题。
它们首先是信息碎片化问题。
到了报税季,用户通常已经拥有必要的信息——但这些信息分散在电子邮件、纸质邮件、收据、支付平台、券商、银行账户和记忆中。
此技能的存在是为了:
- - 及早捕捉与税务相关的事实
- 将其保存在结构化的本地记录中
- 追踪可能缺失的内容
- 为专业审查准备清晰的输出
此技能的功能
此技能可以:
- - 从自然语言中捕捉与税务相关的事件
- 在收到税务文件时进行记录
- 追踪报税时可能相关的费用和收据
- 记录税务机关通知
- 维护需要向注册会计师或税务专业人士咨询的问题
- 将当年记录与往年模式进行比较
- 发现可能缺失的表格或不完整的记录
- 生成结构化的年终和报税前交接摘要
- 将所有内容存储在本地
此技能不能:
- - 提供税务建议
- 解释税法
- 推荐报税立场
- 确定特定项目是否可扣除
- 计算最终纳税义务
- 取代注册会计师、注册税务师、律师或持牌税务专业人士
安全边界:事实与判断
此技能记录事实。
它不做出法律或税务判断。
事实的例子:
- - 收到来自客户A的1099-NEC表格
- 今天为客户餐费花费了120美元
- 收到IRS通知
- 需要询问注册会计师关于承包商付款处理的问题
此技能不做出的判断示例:
- - 某笔付款是否可扣除
- 可扣除的百分比是多少
- 某个报税立场是否合适
- 税务机关将如何解释某条记录
当用户提出判断性问题时,此技能应:
- 1. 记录事实或问题
- 标记为需要专业审查
- 鼓励与持牌专业人士确认
隐私与存储
所有数据仅存储在本地。
基础路径:
~/.openclaw/workspace/memory/tax/
无需云存储。
不访问任何税务机关系统。
存储不需要外部API。
除非用户在此技能之外独立选择,否则不会上传任何文件。
税务记忆模型
此技能将数据组织为六个本地层级:
1. 事件捕捉层
ledger_events.json
从自然语言中捕捉的原始税务相关事实:
- - 费用
- 收到的文件
- 通知
- 向注册会计师咨询的问题
- 提醒事项
- 未知的税务相关事件
2. 文件清单
documents.json
正式表格和文件记录:
- - W-2
- 1099系列
- K-1
- 抵押贷款利息报表
- 房产税报表
- 捐赠收据
- 券商税务表格
- 其他报税年度表格
3. 预期文件
expected_documents.json
基于以下内容预测或预期的表格:
- - 往年历史
- 重复发行人
- 用户声明的账户或实体
- 手动添加的预期
4. 费用与收据记录
expenses.json
可能需要后续专业审查的结构化费用或收据事实。
5. 通知与问题
notices.json
questions
forcpa.json
追踪:
- - 税务机关通知
- 未解决的后续事项
- 用户想向注册会计师咨询的问题
6. 年度状态
year_state.json
追踪年度状态:
产品行为
无摩擦捕捉
用户应能自然表达。
示例:
今天我花了120美元请客户吃午餐。
该技能应将其转换为结构化的本地记录,只需最少的后续操作,即使某些字段不确定,也要保留原始文本。
先捕捉。
后完善。
跨年记忆
往年记录有助于预测当年缺失的项目。
示例:
如果Robinhood去年签发了1099-B表格,但今年尚未记录,则将其标记为可能缺失的文件。
这是一个提醒系统,而非法律结论。
注册会计师交接
此技能的最终输出不是税务建议。
它是为专业审查准备的清晰交接包。
交接包可能包括:
- - 报税快照
- 收入文件清单
- 按类别划分的费用摘要
- 未处理的通知
- 缺失项目
- 向注册会计师咨询的问题
推荐使用场景
年度内
在以下情况下使用此技能:
- - 收到表格时
- 产生收据或费用时
- 收到税务通知时
- 出现与税务相关的问题时
- 用户希望避免遗漏细节时
报税前
使用此技能:
- - 比较预期表格与已收到表格
- 发现缺失项目
- 汇总费用类别
- 准备注册会计师交接包
- 收集未解决的问题
报税后
使用此技能:
核心工作流程
1. 捕捉税务相关事件
用户消息示例:
- - 今天我付了49美元给Adobe
- 我收到了Stripe的1099表格
- IRS给我寄了一封信
- 提醒我向注册会计师咨询这笔承包商付款
内部操作:
- - 分类事件
- 保存原始文本
- 尽可能提取结构化字段
- 存储在本地
- 标记不确定项目以供后续跟进
2. 记录文件
在收到正式税务表格或相关支持文件时使用。
3. 记录费用或收据
当用户提及业务、租赁、自由职业或其他税务相关的付款或收据时使用。
重要提示:
该技能记录事实和类别。
它不确定税务处理方式。
4. 记录通知
当用户提及收到税务机关的通信时使用。
5. 检查缺失项目
使用往年记忆和当年记录来发现可能仍然缺失的项目。
6. 准备注册会计师交接包
生成结构化的Markdown交接摘要以供专业审查。
7. 生成年度摘要
生成Markdown和CSV格式的年度摘要输出,用于审查、记录保存或交接支持。
文件
- - ledgerevents.json — 捕捉的原始税务相关事件
- documents.json — 正式文件清单
- expecteddocuments.json — 预期或预测的表格
- expenses.json — 结构化费用记录
- notices.json — 机关通知
- questionsforcpa.json — 待解决的专业审查问题
- year_state.json — 年度工作流程状态
- summaries/ — 生成的Markdown和CSV交接输出
脚本
| 脚本 | 用途 |
|---|
| captureevent.py | 税务相关自然语言捕捉的主要入口点 |
| adddocument.py |
记录正式税务文件 |
| track_expense.py | 记录费用或收据事实 |
| log_notice.py | 记录税务机关通知 |
| add
cpaquestion.py | 保存问题以供专业审查 |
| check_missing.py | 比较往年与当年的文件历史以发现可能的缺失文件 |
| prep_meeting.py | 生成注册会计师就绪的交接包 |
| generate_summary.py | 生成Markdown和CSV年度摘要输出 |
| archive_year.py | 归档报税年度并结转预期项目 |
| set
yearstate.py | 更新年度税务工作流程状态 |
回复风格规则
使用此技能时:
- - 优先考虑操作清晰度而非解释
- 先捕捉事实,即使不完整
- 在有用时保留用户的原始措辞
- 清晰区分已记录的事实与未解决的判断
- 使用如下短语:
- 已记录
- 已捕捉
- 已标记为需要专业审查
- 可能的缺失项目
- 可扣除
- 允许扣除
- 你应该申报
- 你欠税
- 安全港
- 最终责任
标准边界回复
如果用户询问:
- - 我能扣除这个吗?
- 我欠多少税?
- 我应该把这个申报为X还是Y?
- IRS会接受这个吗?
该技能应按以下模式回复:
- 1. 记录基本事实
- 主动提出将其记录为注册会计师审查项目
- 解释最终的税务处理需要持牌专业人士
免责声明
此技能仅用于整理、记录保存和专业交接。
税务结果取决于司法管辖区、日期、申报身份、实体结构、选择以及文件质量。
请始终与持牌注册会计师、注册税务师、律师或其他合格的税务专业人士确认税务处理、申报立场和计算结果。