财务软件_进销存软件_业财一体化软件_发票软件_ERP软件_会计AI助手_财务报表AI工具_企业管理AI助_仓库管理AI助手_采购管理_销售管理_业财融合_柠檬云Skill
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/ningmengyun--lemonclaw.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @ningmengyun/lemonclaw。- 柠檬云Skill,指令即操作,业财税票全智能! 无需登录系统,通过语音或文字指令,即可轻松搞定记账、库存管理、发票处理与经营数据分析! ✅柠檬云财务:AI指令速录凭证+多维度财务数据查询,无需登录系统,秒查秒录更高效
- ✅柠檬云进销存:会话查库存、业务数据自动同步,移动办公更便捷
- ✅柠檬云业财:业财税一体化,指令调取经营数据,为决策提供数据支撑
- ✅柠檬云发票:文本识别智能开票、业务单据识别批量开票、合同识别开票,智能赋码,开票更轻松
阅读全文 (展开查看完整说明)
概述
LemonClaw
CLI 入口与运行环境
本 skill 中的 lemonclaw-cli 是逻辑命令名。每次执行时,将它替换成当前平台对应的实际入口;<skill-root> 是本 SKILL.md 所在目录的绝对路径:
Windows: python "<skill-root>/launcher/lemonclaw_launcher.py"
macOS/Linux: python3 "<skill-root>/launcher/lemonclaw_launcher.py"例如,文档中的 lemonclaw-cli account current 实际执行为:
python "<skill-root>/launcher/lemonclaw_launcher.py" account current硬规则:
- 需要系统 Python 3.8 或更高版本;标准版 Launcher 本身不依赖 Node.js、npm、pip 或任何第三方 Python 包。
- 系统 Python 只用于启动随 skill 分发的 Launcher。独立开票是唯一允许按
invoice/SKILL.md和当前流程文档直接执行 runtime 脚本的产品,但必须使用 runtime 自带的 Python 和下文规定的运行环境,不要使用系统 Python 执行开票脚本。除独立开票外,不要调用全局lemonclaw-cli,不要执行npm install或pip install,也不要直接运行 runtime 中的 CLI、脚本或action.py。 - Launcher 在 Runtime 尚未安装时自动完成首次安装;需要自动更新的业务命令会按内置周期检查远程版本。不要依赖模型记忆额外执行更新命令。
- 标准版 Launcher 与 WorkBuddy Launcher 独立维护;两者只共用 Runtime 发布协议、远程 manifest/下载地址、平台标识、SHA256/文件大小校验和兼容缓存格式。禁止调用 WorkBuddy 的全局 Launcher。
- 如果系统 Python 不可用或版本低于 3.8,明确提示用户修复 Python 环境,不要绕过 Launcher 手写 HTTP 请求。
使用边界
本 skill 有两条执行路径:
- 公共认证、普通/代账账套、代账机构进度以及 ACC、SCM、ERP 业务通过
lemonclaw-cli执行。不要直接执行 bundled skill 中的action.py,不要手写 HTTP 请求、URL、headers、认证信息或账套上下文。 - 独立开票
invoice使用direct-script模式,不使用通用action search/show/run,也不通过其他lemonclaw-cli命令包装开票脚本;读取当前 runtime 中的invoice/SKILL.md,按其立即开票、批量开票或反馈提交流程直接执行脚本。
本 skill 负责产品路由、账套选择、action 选择、输入输出纪律和最终回复。lemonclaw-cli action show <product> <action> 返回公开 contract 和实际存在的 docs 文档入口;具体 action 的字段、参数位置、返回结构和展示口径,必须通过对应节点的 readCommand 读取后确定。
不要把 action 清单、接口路径、字段全集或运行时内部细节写进最终回复。不要向用户展示完整 CLI JSON,除非用户明确要求排查 CLI 协议。
认证规则
本标准 skill 通过 Launcher 执行 lemonclaw-cli auth status/save-key/logout。auth login 和 auth login --browser 是 WorkBuddy Device Flow 专用命令,本标准 skill 任何情况下都不得执行。
ACC、SCM、ERP 业务开始前先执行 lemonclaw-cli auth status。如果返回未认证、API Key 缺失或 API Key 已失效,直接请用户提供新的 API Key,并等待用户回复;不要启动 Device Flow、不要打开浏览器,也不要自行拼接认证请求。用户提供 API Key 后,通过 stdin 执行 lemonclaw-cli auth save-key --stdin,不得把 API Key 放入命令行参数、临时文件、日志或回复;命令返回 authenticated 后再继续账套和业务流程。
除上述认证缺失或失效场景外,不要主动索取或更换 API Key。任何时候都不得要求用户提供 access token、Authorization header、cookie 或本地凭据路径,也不得在回复中重复或展示用户提供的 API Key。
独立开票是否需要收集 API Key、如何提示、保存和验证,严格按 invoice/SKILL.md 及当前开票流程模板执行。即使在开票流程中,也不得要求用户提供 access token、Authorization header、cookie、baseUrl 或本地凭据路径。
账套上下文
ACC、SCM、ERP 业务请求前先执行:
lemonclaw-cli account current当前账套满足用户请求时直接继续业务 action。没有当前账套、已根据产品路由确认需要切换产品,或用户明确要求切换账套时,优先执行:
lemonclaw-cli account switch "<产品或账套线索>"按 account switch 的结果继续处理:
- 唯一命中并切换成功:执行
lemonclaw-cli account current核验后继续业务 action。 - 返回多个候选:直接展示本次
switch返回的候选并让用户确认;不要再次执行account list,避免刷新候选缓存和序号。用户确认后执行account select,再执行account current。 - 未找到匹配项且没有返回可选候选:执行
account list获取完整候选,等待用户确认后执行account select,再执行account current。 - 认证、网络、权限或服务异常:保持原错误含义处理,不要改用
account list掩盖异常。
候选确认后优先使用最近一次 switch 或 list 返回的序号:
lemonclaw-cli account select --index <index>
lemonclaw-cli account current名称在最近候选中唯一时,也可以使用:
lemonclaw-cli account select --product <product> --name "<账套名称>"已取得准确 asid 时可以使用 --product <product> --asid <asid>;专业版同名账套需要同时使用 --product <product> --serviceid <serviceid> --name "<账套名称>" 限定。
账套规则:
account switch可以按产品、账套名、asid、serviceid、版本等线索匹配;账套名、产品或版本存在歧义时先让用户确认。account select只从最近一次account switch或account list缓存的候选中选择;没有候选缓存时不要直接按名称选择。account select --index的序号必须来自最近一次候选结果,不要固定传1;名称重复时不得自行选择。- 展示候选时使用
index、productName、editionName、accountSetName、asid;专业版同名账套需要区分时可附加serviceid。 - 不展示或要求用户提供
candidateId、appasid、appAsId、accAppId。 - 每个产品独立保存自己的账套上下文。切换当前产品或账套不应删除其他产品的上下文。
account clear只清理账套上下文,不清理认证。- 独立开票所需的销方、购方、认证和公司选择以
invoice/SKILL.md为准;除非开票流程明确要求,否则不要把本节的普通业务账套流程强行套用到 invoice。
代账机构与客户上下文
用户提到云代账、代账机构、代账客户,或要求为代账客户办理业务时,不使用普通账套的模糊切换。每个新对话都从机构发现开始:
lemonclaw-cli account list --aa-only- 只展示
aaCompanies中本次返回的机构序号和名称,不展示或要求用户提供aaCompanyId。 - 一家机构也使用本次返回的序号;多家机构等待用户按名称或序号确认。超过 10 家时只对本次完整候选分页展示,不重新请求、不重排或重新编号。
- 用户确认后执行
lemonclaw-cli account list --aa-only --aa-company-index <index>。序号必须来自最近一次机构列表;候选失效时重新展示机构,不能按新列表猜测旧序号。 - 确认后的机构由 Runtime 写入公共 AA 上下文,机构级进度和该机构下的客户账套发现共用;切换或选择普通 ACC/SCM/ERP/invoice 时清除当前机构及其进度条件。重新进入代账业务时必须重新发现并确认机构、客户和账套,禁止从历史账套保存的
aaCompanyId自动恢复机构;完成本次accountSource=aa账套选择后才同步所属机构。改选机构会同时作废旧机构的进度查询条件和所有已保存的 AA 客户账套,必须在新机构下重新选择客户和账套。每个新对话仍必须重新发现并确认机构。 - 展示
aaCustomers时同时展示客户编码和客户名称,并列出接口真实返回的可用产品。重名客户不得合并,没有产品绑定的客户只作为客户信息对象展示。 - 用户确认客户和业务后,从本次
candidates选择对应产品,执行lemonclaw-cli account select --index <index>,再执行account current;核验accountSource=aa、机构、客户及activeProduct均与本次选择一致。
代账客户绑定相互独立:财务使用 product=acc,进销存使用 product=scm,云发票使用 product=invoice。对用户展示 AA 的 product=acc 时固定称为“柠檬云代账”,普通 ACC 仍称为“柠檬云财务”。不得把 AA 服务号当作普通 serviceid,不得用另一个产品绑定补造缺失能力。机构切换后清除当前对话中的客户和业务条件,不跨机构汇总。
代账机构客户业务进度
客户概况、记账进度和报税进度属于机构级能力,不选择客户账套。先完成机构发现,再按顺序执行:
lemonclaw-cli aa progress options --aa-company-index <index>
lemonclaw-cli aa progress query --period <yyyy-MM> --scope-type permission_scope --metric customer_overview --metric accounting --metric tax- 默认、“全部可见客户”及“我负责的客户”均使用
permission_scope;只有用户明确指定本人、其他员工或部门时才使用self、employee或department。 - 员工/部门的
subject-id只能来自 options 实际返回的候选,不得猜测或要求用户提供内部 ID。 - 用户要求客户明细时增加
--metric detail;要求导出时,先确认查询条件,再执行lemonclaw-cli aa progress export --format excel|pdf。 - 不展示机构、客户、员工、部门、服务或账套内部 ID。报税状态缺失按“未申报/未完成”处理,进度表不展示“数据缺失”列。
- 个人所得税申报查询不属于机构客户记账/报税进度;不要混用。
代账客户业务路由
- 客户信息来自机构下的
aaCustomers,只展示接口真实字段。 - 已选
product=acc或product=scm后,继续使用现有 action search/show/doc/run 流程;Runtime 根据已保存的 AA 上下文选择域名并附加机构参数。 - 已选
product=invoice后进入现有云发票 direct-script 流程;必须先确认客户真实返回了发票绑定,未知或未开通时不得用财务发票 Action 替代。 - 用户明确请求的目标产品未绑定时,只说明该业务当前不可用的直接原因,不主动罗列其他客户或产品作为替代。
产品路由
同一时间只有一个 activeProduct。如果 activeProduct 存在,默认只在当前产品中搜索和执行 action。除非用户明确点名另一个产品、明确要求切换产品、明确要求跨产品汇总,或明确进入独立开票流程,否则不要切换产品。
如果没有 activeProduct,且用户没有说明产品,先确认用户要使用财务 ACC、进销存 SCM、业财 ERP,还是独立开票 invoice;确认前不要默认切到 SCM 或跨产品试探。
产品边界:
acc:普通独立财务账套或已确认的代账客户财务绑定,包括凭证、账簿、资金、基础资料、财务发票查询、财务报表等。scm:普通进销存账套或已确认的代账客户进销存绑定,包括商品、客户、供应商、采购、销售、库存、收付款、经营报表等。erp:业财账套,包括进销存业务和 ERP 财务侧能力。ERP 财务侧的凭证、账簿、资金、基础资料和财务发票能力应在 ERP 产品内处理,不要为了这些词切到 ACC。invoice:云发票产品、独立开票、税票平台、开票助手或开票助理,包括云发票企业与客户查询、立即或批量开票、预览、认证、额度和反馈。
容易误判的业务词:客户、供应商、商品、库存、采购、销售、收款、付款、往来、资金、报表、明细、汇总、对账、欠款、利润、发票等在多个产品中都可能存在。不能仅凭这些词切换产品;先在当前 activeProduct 范围内搜索候选。
发票业务也必须遵循上述产品路由规则:
- 用户明确提到“云发票”“云发票产品”“独立开票”“税票平台”“开票助手/开票助理”,或询问云发票下的企业、公司、账号、账套、销方、可开票主体时,进入
invoice流程。 - 查询云发票企业、公司、账套、销方或可开票主体时,先读取开票文档,再按文档调用
CompanyFullList;不要使用普通业务账套列表代替。 - 云发票企业详情、购方客户、登录状态、税局或数电认证、剩余额度、税编解析、立即或批量开票、预览、确认、提交、客服和问题反馈,也进入
invoice流程。 - 普通进项发票、销项发票、发票详情、导出或统计只在已确认的 ACC 或 ERP 产品范围内选择 action;没有当前产品且用户未指定产品或账套时,先请用户确认,不得默认选择 ACC。
- 用户只说“发票”且无法判断是财务发票查询还是云发票操作时,先澄清,不要默认进入任一流程。
其他产品已经保存账套上下文,不构成切换产品的依据。当前产品没有匹配能力时,只能说明当前产品暂未找到对应能力并询问用户是否切换;不得静默使用其他产品的 action 或数据代替。
云发票与独立开票工作流
明确进入云发票产品,或命中云发票企业查询、独立开票、立即开票、批量开票、确认开票、开票预览、提交开票或开票问题反馈时:
lemonclaw-cli skill-root --check仅用于发现并校验当前 runtime 的 bundled skill 根目录;不得通过该命令传递或执行任何开票业务参数。- 根据返回路径建立并校验以下直接脚本运行上下文:
<runtime-root> = 规范化后的 <skill-root>/../../..
Windows Python = <runtime-root>/python/python.exe
macOS/Linux = <runtime-root>/python/bin/python3
cwd = <runtime-root>
PYTHONPATH = <runtime-root>/app
SSL_CERT_FILE = <runtime-root>/app/certifi/cacert.pem
PYTHONUTF8 = 1
PYTHONIOENCODING= utf-8
PYTHONNOUSERSITE= 1
PYTHONDONTWRITEBYTECODE=1
LEMONCLAW_RUNTIME_ROOT=<runtime-root>执行前确认 <runtime-root>/runtime.json、对应平台的 runtime Python 以及 <runtime-root>/app 都存在。以上环境变量只覆盖当前开票脚本进程,不修改用户的全局环境。
- 完整读取
<skill-root>/invoice/SKILL.md,并以<skill-root>/invoice/作为所有相对路径的基准。runtime 文档中的 <SkillsRoot> 即 <skill-root>/invoice/,二者同指 invoice 目录的绝对路径。 - 开票文档中的
python、python3或<Python>解释器标记统一替换为上述 runtime Python;将脚本相对路径解析为<skill-root>/invoice/下的绝对路径,然后由 runtime Python 直接执行脚本。不要替换或包装成lemonclaw-cli命令,也不要使用系统 Python。 - 路径按当前平台解析,新版文档统一使用
/表示目录层级。若已安装 runtime 的旧版文档仍含 PowerShell 反引号续行或 Windows 反斜杠,只保留原参数及其顺序,按当前平台重新解析路径和参数,不要原样交给 macOS/Linux shell。macOS/Linux 不执行.ps1,预览服务启停直接调用对应 Python 脚本,临时目录清理由当前平台的文件操作完成。 - 立即开票只按
references/immediate/flow.md执行;批量开票只按references/batch/flow.md执行;反馈提交只按invoice/SKILL.md指定的 shared 文档执行。 - 按开票 Skill 和当前阶段文档调用随 runtime 分发的脚本、references、config 与 assets;不要自行改写开票门禁、固定提示、预览、确认、额度检查、payload、提交或反馈流程。
- 云发票业务不使用通用
action search/show/run,也不要用 ACC 或 ERP 的发票查询 action 代替云发票流程。普通进项、销项发票查询仍按当前 ACC 或 ERP 产品执行。 invoice/SKILL.md、当前流程文档和共享输出协议决定业务流程与输出;本节决定标准版的 Python、目录和进程环境。二者发生执行方式冲突时,以本节的标准版直接脚本运行上下文为准。
Action 选择流程
处理 ACC、ERP、SCM 业务请求时严格按顺序执行:
1. lemonclaw-cli account current
2. lemonclaw-cli action search "用户需求"
3. lemonclaw-cli action show <product> <action>
4. 必要时读取合理候选的 docs.action,确定唯一 action
5. 读取最终 action 的全部现有 docs 节点
6. lemonclaw-cli action run <product> <action> --json-stdin选择规则:
search只用于找候选,不生成参数、不执行业务请求。search结果不是最终 action,第一名或ambiguous=false都不表示已经选定。先show最合理候选;仍有合理候选时最多深入比较两个,无法排除时向用户澄清。- 第一次
search没有候选时,不得直接判断当前产品不支持。先拆解用户请求中的业务对象、操作类型、结果粒度、筛选条件和期望输出,在当前activeProduct内改写搜索词重新搜索并核对候选;完成语义核对后仍未找到,才说明当前产品暂未找到对应能力。 show只返回当前 action 的公开contract和实际存在的docs节点,不代表该 action 已经成为唯一选择。文档只能执行对应节点的readCommand读取,不要根据path猜命令,也不要猜不存在的文档。- 比较候选时只在需要业务边界时读取候选的
docs.action。确定唯一 action 后,读取最终 action 的全部现有文档;如果此前读取过多个候选的ACTION.md,先重新读取最终 action 的docs.action,再读取docs.input和docs.output。 ACTION.md用于确认使用边界、前置步骤和依赖;input.md用于构造请求;output.md用于理解预期结果和展示约定。缺少input.md且contract不足以确定参数时,不得执行run。- 不要根据 action 名称、响应字段、页面列名、旧记忆或相邻 action 臆造入参。
- 不要为了找到更像的 action 自动跨产品搜索。跨产品前必须满足产品路由规则。
invoice产品是独立编排流程,不能通过通用action search/show/run执行;遇到对应错误时不要改用 ACC 发票查询 action 代替开票流程。
Action 输入规则
本节只适用于 ACC、SCM、ERP 的 CLI action。action run 的 stdin 必须保持嵌套结构:
{
"query": {},
"body": {},
"_outputMode": "full"
}硬规则:
- 顶层只允许
query、body、_outputMode、_extraDisplayFields;普通请求不要传_extraDisplayFields。 - 不要拍平
query/body,也不要让 CLI 根据字段名重新分流。 - 不传
context、_context、headers、token、cookie、appasid、appAsId、accAppId 等运行时字段;CLI 从已选择账套加载上下文。 bodyMode:none的 action 可省略body或传{},业务字段按contract.requestParamSchema和实际存在的docs.input放入query。bodyMode:list的 action,body必须是数组;其他公开 action 的body必须是对象。- 参数是否必填、字段类型、枚举值、日期格式、ID 串格式,以最终 action 的
docs.input文档和contract.requestParamSchema为准。 - 普通查看省略
_outputMode;也可显式传basic。 - 只有统计、分析、二次筛选、Top、核对、下游交接、需要完整结构化数据,或用户点名默认列之外的展示字段时才传
_outputMode:"full"。 _extraDisplayFields只能和_outputMode:"full"一起使用,只传用户明确要求展示且 action 契约已定义的字段名或业务标签。未点名的完整字段只用于分析,不得自动铺开显示。internal、raw-internal、system是内部编排模式,禁止从标准 skill 传入。- ACC、SCM、ERP 当前没有业务写 Action,不要追加 CLI 参数
--user-confirmed,也不要根据 Action 名称或 HTTP 方法推断写能力。
用户明确要求展示非默认字段时,使用:
{
"query": {},
"body": {},
"_outputMode": "full",
"_extraDisplayFields": ["商品条码"]
}调用时把 JSON 作为命令 stdin 直接提交,不使用 shell echo 拼接 JSON。
输出展示规则
本节只适用于 ACC、SCM、ERP 的 CLI action。CLI stdout 是 action 完成取数、展示塑形后的最终 JSON,不是原始业务接口响应。不要再次按接口 rows/raw/data 自行拼接展示。
普通查看:
- 在返回结果对象中读取
mustDisplayVerbatim和primaryDisplayField。 - 当
mustDisplayVerbatim=true时,按primaryDisplayField指定的字段原样展示;常见字段是displayMarkdown、reportMarkdown、markdown或content。 - 原样展示时不要改写 Markdown 表头、章节顺序、表格列、排序、金额格式、提示语或文件路径。
- 最终回复直接输出
primaryDisplayField的 Markdown 原文,让表格在消息中渲染;不得用三反引号代码块包裹、不得转义管道符|、不得缩进或改成纯文本。 primaryDisplayField不存在时,再依据已读取的docs.output文档解释结构化结果。- 面向用户优先输出中文业务结果和必要结论,不要直接贴完整 JSON、字段名清单、错误码堆栈或 CLI 调试过程。
结构化读取:
- 常见结构为
data.数据、data.数据列表、data.总数;具体以已读取的docs.output文档为准。 action run的实际返回是本次数据事实;docs.output只解释实际存在字段的含义和展示约定,不覆盖真实响应。不要根据内部fieldMap路径直接访问 runtime 文件,也不要把内部 ID 当作普通展示列输出。- 如果结果包含文件路径、下载路径或导出信息,只在 action 成功且字段真实存在时告知用户。
basic 和 full 返回的 displayMarkdown 都只代表默认展示列,不代表 action 的全部返回字段;full 的完整结构化字段可用于分析,但不得自动全部展示。用户点名筛选、排序、统计或交接默认表格未展示的字段时,先检查实际存在的 docs.output;字段已经定义则使用 _outputMode:"full" 重新取数。用户还明确要求展示该字段时,通过 _extraDisplayFields 追加;确认未定义后才能说明当前 action 不支持该字段。
full 模式规则
本节只适用于 ACC、SCM、ERP 的 CLI action。full 用于统计分析、二次筛选、Top、核对、下游交接和完整结构化读取;full 不等于自动导出 Excel,也不代表可以把全量结构化行直接贴给用户。
使用 full 后必须检查数据完整性:
- 比较
数据列表实际长度与总数。 - 如果长度小于总数、存在
complete=false、存在分页/截断提示,或output.md明确说明可能不是全量,不得声称分析覆盖全部数据。 - 数据不完整时,说明当前结果范围和限制,并建议缩小筛选条件、补充期间/账户/类别等条件,或使用系统导出能力。
- 统计金额、数量、Top、占比、异常分析时,如果数据不完整,结论必须标注“基于当前返回数据”。
报表规则
本节只适用于 ACC、SCM、ERP 的 CLI action。模板报表和已塑形报表必须优先使用 action 返回的最终正文。只要返回包含 displayPolicy=verbatim_markdown、mustDisplayVerbatim=true 或明确指定 primaryDisplayField,最终回复必须原样展示指定字段。
报表规则:
- 资金日报、资金周报、资金月报等模板报表,最终正文必须来自对应 action 的
displayMarkdown或文档指定字段。 - 不得手写、摘要化、删章节、改标题、改顺序、改表格列、合并表格或只展示局部指标。
- 报表正文(
displayMarkdown等)同样直接渲染为 Markdown 输出,不得用代码块包裹。 - 展示前确认正文包含模板要求的固定章节;如果 action 返回显示正文不完整,应按错误或不完整结果处理。
- 对应模板或
output.md明确要求包含报告结束时,展示前必须核验;ACC/ERP 财务侧 statement query 不强制追加该标记,仍按其primaryDisplayField和输出契约原样展示。 - ACC 的
cashier-daily-report、cashier-weekly-report、cashier-monthly-report是 ACC 资金报表入口。 - ERP 中同名资金报表是 ERP 财务侧入口。不要跨产品混用报表入口。
- SCM/ERP 销售经营报表和 ACC/ERP 资金报表都应通过正式报表 action 生成,不要只查底层列表后自行拼报表。
业务只读与云发票写操作
ACC、SCM、ERP 当前不修改柠檬云业务数据,仅支持查询、明细、报表、统计和导出。部分查询使用 HTTP POST,仍属于业务只读;导出 Action 可能生成本地文件,但不得据此推断新增、修改、提交、删除或状态变更能力。
- 不得为 ACC、SCM、ERP 编造业务写 Action,也不要追加
--user-confirmed。 - 支持 dry-run 的命令可用
--dry-run查看计划或校验结果,但 dry-run 结果不能当作真实业务结果。 - 正式开票必须按
invoice/SKILL.md完成当前预览、有效用户确认、认证、额度、payload 和提交门禁;一次确认只允许提交一次,失败后不自动重试。 - 反馈提交只在用户明确要求代提交并按反馈文档补齐反馈内容与附件后执行;不套用正式开票的票据预览门禁。
错误处理
ACC、SCM、ERP 的 CLI 与账套错误按错误类型处理,不要把所有错误都改写成“CLI 执行失败”。独立开票错误按本节最后一条执行。
source:"cli":CLI 参数、索引、进程或协议错误。按错误码修正命令、产品、action 或输入信封。active_product_mismatch:当前产品与请求产品不一致。先确认用户是否要切换产品或账套。- 缺少账套上下文:执行
account switch;唯一命中后执行account current核验。 - 候选账套歧义:直接展示
account switch返回的候选,用户确认后执行account select;不要在二者之间重新执行account list。 account switch未找到匹配项且没有返回候选:执行account list,用户确认候选后再执行account select。- 账套命令返回认证、网络、权限或服务异常:按原错误处理,不要通过刷新候选规避错误。
- AA 机构或客户候选失效:重新执行
account list --aa-only并展示新候选,不按新顺序套用用户此前选择的序号。 - action 未找到:在当前产品重新
action search。不要直接跨产品乱搜。 - payload 或 request 参数校验失败:重新执行最终 action 的
show和docs.input.readCommand,按input.md与contract修正query/body。 - 权限、业务规则、数据不存在、期间未启用等结构化业务错误:保持原业务含义,用中文说明下一步可操作建议。
- 文件导出失败或返回错误文件:不要把错误文件当成 Excel 成果。
- 不得因为接口报错、空数据、无权限、认证失效或服务不可用而自动切换产品、账套、服务或接口域名。先按当前上下文说明问题,只有用户明确要求后才能切换。
- 独立开票的错误、失败反馈和最终措辞按
invoice/SKILL.md、当前流程模板和共享输出协议处理,不要改写成通用 CLI 错误。
最终回复规则
最终回复使用中文业务语言,优先回答用户问题本身。不要输出 action.py 路径、HTTP 路径、headers、token、appasid、candidateId、完整 CLI JSON、调试日志或不必要的字段名。除普通账套候选确认确有必要展示的 asid、serviceid 外,不要向用户展示业务单据 ID、客户 ID、供应商 ID、商品 ID 或其他系统内部 ID;代账机构、客户和账套一律不展示 aaCompanyId、customerId、aaServiceId、asid、appasid 或 serviceid。
如果普通 ACC、SCM、ERP 请求发起或依赖了真实业务数据查询,回复末尾说明本次使用的账套名称和 serviceid;accountSource=aa 的代账账套只说明账套名称,不展示 serviceid。机构列表、客户列表和机构级进度不追加账套说明。没有取得账套名称时不要猜测。
独立开票最终回复必须按当前开票流程的固定模板和共享输出协议收口;当开票文档要求只输出固定成功或失败文案时,不追加通用账套尾注或其他说明。
当数据为空、被截断、权限不足或筛选条件不完整时,要明确说明范围和限制。不要为了让结果看起来完整而补造数据、猜测金额、猜测期间或猜测业务对象。
用户反馈数据异常、结果不对、不会操作,或明确要求人工、客服、官方帮助时,提示可以前往柠檬云官网,联系在线客服。所有用户可见的网页链接都必须使用 [链接名称](https://...) 形式,不得输出裸地址;Markdown 链接结束后用标点或空格与后续中文分隔,不能把右括号或说明文字并入链接目标。独立开票客服入口和二维码优先使用开票流程规定的 customer_service_link 与固定模板。
CLI 快速参考
lemonclaw-cli auth status
lemonclaw-cli auth save-key --stdin
lemonclaw-cli skill-root --check
lemonclaw-cli account current
lemonclaw-cli account list --aa-only
lemonclaw-cli account list --aa-only --aa-company-index <index>
lemonclaw-cli account switch "<产品或账套线索>"
lemonclaw-cli account list
lemonclaw-cli account select --index <index>
lemonclaw-cli account select --product <product> --name "<账套名称>"
lemonclaw-cli account select --product <product> --asid <asid>
lemonclaw-cli account select --product <product> --serviceid <serviceid> --name "<账套名称>"
lemonclaw-cli aa progress options --aa-company-index <index>
lemonclaw-cli aa progress query --period <yyyy-MM> --scope-type permission_scope
lemonclaw-cli aa progress export --format excel|pdf
lemonclaw-cli action search "用户需求"
lemonclaw-cli action show <product> <action>
lemonclaw-cli action doc <product> <action> --doc action
lemonclaw-cli action doc <product> <action> --doc input
lemonclaw-cli action doc <product> <action> --doc output
lemonclaw-cli action run <product> <action> --json-stdin