feat(sheets): eval round 2 — cut agent error rate and --help lookups - #1911
Conversation
基于 2026-07-09 三轮评测(35 题、100 次错误、90 次 help/schema 探查)逐条归因: - 直觉 flag 两级处置(flag_ergonomics):无歧义别名静默改写零来回 (--file→--csv、--name→--title、--cols/--rows→--range、 --source/--target→--source-range/--target-range),有歧义的挂 curated 处方一步给正确写法(sheet-copy 新表名、dim-insert 无 --dimension、dim-freeze --frozen-rows、cells-set-style --bold、 table-put --start-cell/--sheet-name);评测 18 次 unknown flag did-you-mean 仅命中 4 次 - 下划线 flag 形态全域归一(--sheet_name→--sheet-name),枚举别名 补 MERGE_ALL 族与 word-wrap true/false - --cells 单 cell 对象自动包裹为 [[cell]](键集⊆cell schema 才改写); border_styles.all 展开四边、cell_styles 误嵌 border_styles 拦截 (覆盖 standalone 与 batch 嵌套,评测中此类错误须到服务端才拦) - table-put:--sheets 解码错误内联骨架示例;--styles 一次聚合报告全部 问题且 type/size 错误内联完整合法 op(评测 V2U011/V2U032 各连环 踩 4 次) - batch 服务端「N succeeded, M failed」双层转义 JSON 解包为单行失败 清单(评测聚合脚本都抓不到原因的 8 次全部来自此处) - chart:颜色缺 # 前缀自动补全;--print-schema 支持点分路径切片 (properties.snapshot.plotArea.axes);+chart-create --print-example 输出 8 类图表最小可用模板(25 次全量 schema 翻页的根源) - 确认门 hint 携带完整重试命令(含 stdin/超长两个省略保护); 评测 9 次 requires confirmation 全部靠模型自行补 --yes 自愈 - 高频命令 --help 补可抄示例 Tips(dim-insert/dim-freeze/cols-resize/ cells-set/cells-set-style/cells-batch-set-style/sheet-copy/table-put)
同步 sheet-skill-spec feat/sheets-round2-optimization 的生成产物: SKILL.md 瘦身 14%(37.2k→31.8k 字符)+ 高频命令签名速查 + high-risk-write --yes 标注 + print-example/schema 切片指引。
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 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 |
e8c4511 to
d28d6c9
Compare
| WithHint("add --yes to confirm") | ||
| err := errs.NewConfirmationRequiredError(errs.RiskHighRiskWrite, action, | ||
| "%s requires confirmation", action) | ||
| if retry := retryCommandWithYes(os.Args); retry != "" { |
There was a problem hiding this comment.
[P1] Avoid echoing the complete argv in confirmation errors
RequireConfirmation embeds the full os.Args in a typed error hint that is JSON-encoded to stderr. High-risk commands accept inline sensitive payloads (for example, apps +db-execute --sql and the generic service --data flag), so any invocation below the 300-byte cutoff can copy SQL, request bodies, or secrets into logs and agent transcripts.
Please keep the fixed add --yes to confirm hint and let callers reuse their original argv array with --yes appended, instead of echoing the full command.
…g path
+cells-set-style / +cells-batch-set-style parse borders via
borderStylesFromFlag, which — unlike the typed --cells and --styles paths —
never expanded the "all" side shorthand, so {"all":…} reached the backend to
be rejected. Expand it CLI-side here too for parity.
retryCommandWithYes only recognized a bare "-" token, so a stdin value bundled onto a flag as --flag=- slipped through and produced a retry line a bare re-run could not reproduce. Suppress the line for the bundled form too.
## Background Round 2 of eval-driven sheets optimization, rebased onto the latest `feat/lark-sheets-develop` (`8897196d`). ## Changes - **feat(sheets): cut agent error rate and --help lookups (eval round 2)** — targets the top failure modes from round 2 evals, reducing agent error rate and the number of `--help` lookups. - **chore(sheets): sync skill docs and flag data from sheet-skill-spec** — syncs skill docs and flag data from sheet-skill-spec. ## Notes - During rebase, the "import mislabeled .xls workbooks by sniffing content" fix already existed on the target branch (identical patch-id), so it was auto-skipped — no duplicate. - The target branch was force-rewritten and advanced in the meantime; the two new commits were cleanly replayed onto the new tip via `--onto` with no conflicts. One hunk touching the `--type` description in `lark-sheets-workbook.md` was auto-dropped because upstream already has the same end state — no content lost.
Background
Round 2 of eval-driven sheets optimization, rebased onto the latest
feat/lark-sheets-develop(8897196d).Changes
--helplookups.Notes
--ontowith no conflicts. One hunk touching the--typedescription inlark-sheets-workbook.mdwas auto-dropped because upstream already has the same end state — no content lost.