feat(sheets): add +formula-verify shortcut for verify_formula tool#1626
feat(sheets): add +formula-verify shortcut for verify_formula tool#1626wenzhuozhen wants to merge 1 commit into
Conversation
把 sheet-skill-spec/canonical-spec/tool-schemas/tools-schema.json 的 verify_formula 工具落地为 lark-cli 薄壳 shortcut +formula-verify (read scope,invoke_read),供 AI 写完公式后做 R10 zero-error 自检。 - shortcuts/sheets/data/flag-defs.json 新增 +formula-verify 命令的 flag 定义:--url / --spreadsheet-token (XOR) / --sheet-id / --sheet-name (各自可多次,互斥) / --range (多次) / --error-type (enum 多次) / --max-locations (default 20) / --cell-limit (default 50000) / --exit-on-error。同步 flag_defs_gen.go 由 go generate 重新生成。 - shortcuts/sheets/lark_sheet_formula_verify.go 新增 FormulaVerify shortcut,把 CLI flag 翻成 verify_formula 工具入参(sheet_ids / sheet_names 二选一;--range 空 → 走 current_region),调 AIService.OpenAPIToolCallRead,再按 --exit-on-error 把 status=errors_found 转成 SubtypeFailedPrecondition 验证错误。 - shortcuts/sheets/shortcuts.go 把 FormulaVerify 注册进 shortcutList, 挂在 lark_sheet_search_replace 之后、其他写工具之前,方便从工具组 导航定位。 - shortcuts/sheets/lark_sheet_formula_verify_test.go 覆盖 dry-run wire 形态(默认/多 sheet/多 range/带错误类型+caps)、selector 互斥、 cap > 0 守卫、exit-on-error 状态矩阵(success/partial/errors_found/ unknown/non-object)的 typed-error 断言。 - tests/cli_e2e/sheets/sheets_formula_verify_dryrun_test.go 通过外 部 lark-cli 二进制做 dry-run 端到端校验:默认无 selector 时 sheet_ids / sheet_names 不出现;多值入参全部按 schema 字段名落入 body.input;--sheet-id 与 --sheet-name 同时传被拒。 依赖上游 BE-2 在 facade.agg 注册 verify_formula 路由后,本 shortcut 就能透传到 cmd_api BE-1 实现。spec 见 docs/specs/verify-formula-spec/ spec.md(BE-3);契约源见 sheet-skill-spec commit 8809815。 Refs: https://bytedance.larkoffice.com/docx/DetAdncvKo0okNx7A08cVyeRngf
|
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthrough
ChangesSheets formula verification
Sequence Diagram(s)sequenceDiagram
participant CLI
participant FormulaVerify
participant invoke_read
CLI->>FormulaVerify: +formula-verify flags
FormulaVerify->>invoke_read: POST /tools/invoke_read with verify_formula payload
invoke_read-->>FormulaVerify: status and output
FormulaVerify-->>CLI: stdout and exit code
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1626 +/- ##
==========================================
- Coverage 74.66% 74.65% -0.02%
==========================================
Files 804 807 +3
Lines 81032 81469 +437
==========================================
+ Hits 60501 60818 +317
- Misses 16029 16115 +86
- Partials 4502 4536 +34 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
🚀 PR Preview Install Guide🧰 CLI updatenpm i -g https://pkg.pr.new/larksuite/cli/@larksuite/cli@61e15e6893d9a3b9278bdf56b0be9b3c09f57b54🧩 Skill updatenpx skills add larksuite/cli#feat/sheets-formula-verify -y -g |
Summary
把 sheet-skill-spec/canonical-spec/tool-schemas/tools-schema.json 新加的
verify_formula工具落地为 lark-cli 薄壳 shortcut+formula-verify(read scope,invoke_read),供 AI 在批量公式写入(+cells-set/+csv-put/+batch-update/+workbook-import等)之后做 R10 zero-error 自检。PRD: https://bytedance.larkoffice.com/docx/DetAdncvKo0okNx7A08cVyeRngf
Changes
shortcuts/sheets/data/flag-defs.json: 新增+formula-verify命令 flag 定义--url/--spreadsheet-token(XOR)--sheet-id/--sheet-name(各自string_slice,可重复或逗号分隔;两者互斥;都不传 = 扫描全部可见子表)--range(string_slice,可多段)--error-type(enumstring_slice,限定#REF!/#DIV/0!/#VALUE!/#NAME?/#NULL!/#NUM!/#N/A)--max-locations(int,default 20)--cell-limit(int,default 50000)--exit-on-error(bool)shortcuts/sheets/flag_defs_gen.go:go generate重新生成shortcuts/sheets/lark_sheet_formula_verify.go:FormulaVerifyshortcut 实现,把 CLI flag 翻成verify_formula工具入参;调AIService.OpenAPIToolCallRead;--exit-on-error状态映射 →success/partial静默通过,errors_found转errs.SubtypeFailedPrecondition验证错误(带 hint 引导调用方修公式 / IFERROR 兜底后重跑),未知 status 转SubtypeInvalidResponse内部错误(避免静默零退出)shortcuts/sheets/shortcuts.go: 注册FormulaVerify,挂在lark_sheet_search_replace之后shortcuts/sheets/lark_sheet_formula_verify_test.go: 单测覆盖 dry-run wire 形态、selector 互斥、cap > 0 守卫、exit-on-error 状态矩阵(success / partial / errors_found / unknown / non-object)的 typed-error 断言tests/cli_e2e/sheets/sheets_formula_verify_dryrun_test.go: 通过外部lark-cli二进制做 dry-run 端到端校验Test Plan
go test -race -count=1 ./shortcuts/...全绿(含新增单测)go test -run TestSheets_FormulaVerify ./tests/cli_e2e/sheets/...全绿(dry-run E2E)go vet ./...干净gofmt -l .干净go mod tidy无 diffsheet.node.cmd_api落地VerifyFormulahandler) + BE-2 (sheet.facade.agg注册 ToolName 路由) merge 后再跑Related Issues
lark_sheet_formula_verifyskill + R10 自检铁律)docs/specs/verify-formula-spec/spec.md(在 cli 仓本地)Summary by CodeRabbit
New Features
Bug Fixes
Tests