docs(base): reduce filter and update retry loops#1879
Conversation
Eval traces show the Base filter/view chain loses time to avoidable
error->lookup->retry loops:
- record/view --filter-json (tuple [[f,op,v]]) gets confused with
+data-query's object filters ({field_name,operator,value}) -> 800010701
- scalar fields (text/number) get array-wrapped values -> 800010507
- agents guess a field is select from its name, or guess enum values in
Chinese when stored values are English -> 0 hits then retry
Add a top-of-doc section to the tuple-DSL SSOT (value shape by field type,
check field type first, don't confuse with data-query, use real stored
values), a reciprocal warning in data-query, and two recovery rows in
SKILL.md. Flag-level details (--limit vs --page-size) are left to command
--help per the skill's stated design.
|
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 (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughUpdated Lark Base skill documentation to version 1.2.3, adding recovery guidance for missing field discriminators and clarifying filter syntax, field-type discovery, and scalar filter values. ChangesLark Base documentation
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ 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 |
…rfit examples Address review feedback on the first pass: - remove the added top-level '## 0 …先读' section — it duplicated §3 (per-type value rules) and §7 (易错点), and its examples (状态=="Open", 工时>=3.5) overfit the eval case and even clashed with §3's own 状态-as-select example. - instead sharpen what already exists: §7 names the shared commands and the data-query object shape to avoid; §6 gets one process rule (confirm field type / real values first); all example-free and principle-based. - revert the data-query.md note (wrong direction; the confusion is fixed at the record/view tuple-DSL SSOT). - slim the SKILL.md recovery rows to terse, message-keyed, reference-pointing entries matching the table's style.
|
|
e79473e to
1350662
Compare
1350662 to
625a0fd
Compare
🚀 PR Preview Install Guide🧰 CLI updatenpm i -g https://pkg.pr.new/larksuite/cli/@larksuite/cli@0e66827fd60783750f33f36adc76802a6044f7d9🧩 Skill updatenpx skills add Neseria/cli#worktree-lark-base-filter-guidance -y -g |
291b508 to
0e66827
Compare
* docs(base): clarify complete and partial updates Consolidate the update rule introduced in #1879 and make the command-contract boundary explicit. Full-update commands must use trusted current configuration for the first actual request, while delta commands should send the smallest legal payload. * docs(base): clarify full-update state preservation Address review feedback by requiring unchanged writable configuration to remain intact, except when the requested update makes a setting inapplicable. * docs(base): strengthen update contract guidance
* docs(base): clarify complete and partial updates Consolidate the update rule introduced in #1879 and make the command-contract boundary explicit. Full-update commands must use trusted current configuration for the first actual request, while delta commands should send the smallest legal payload. * docs(base): clarify full-update state preservation Address review feedback by requiring unchanged writable configuration to remain intact, except when the requested update makes a setting inapplicable. * docs(base): strengthen update contract guidance
Background
Base evaluation traces show two avoidable error → lookup → retry loops:
+data-query, or use an array for a scalar field value.800010701 Invalid discriminator value; blindly adding onlytypecan still lose options or style.The second issue is not solved by making every update full-state: Base commands have different full-update and partial-update semantics. Agents need one command-aware rule instead of one request-shape patch per failure.
Changes
+data-queryobject DSL;Invalid discriminator valuerecovery through the same complete-submission rule instead of telling agents to patch only the missingtype.Why Skill-only
This is the smallest change that fixes the decision error at its source. It applies across resource types without changing CLI command semantics, adding hidden network requests, or requiring a
bitable-mcpdeployment. A backend field PATCH, automatic CLI retry, or field-specific type hint would solve only the current trace and could still lose nested configuration.Validation
800010701;1.2.3:_050: 5/5 final pass, zero800010701;_035: 5/5 final pass, all five views created from scratch, zero filter value-shape errors;_032: 5/5 final pass, only the three Open/High targets changed.exit 127failures.node scripts/skill-format-check/index.jsgo test ./internal/qualitygate/skillscan/...git diff --checkSummary by CodeRabbit
typediscriminator) and improved instructions for handling validation errors for array/object mismatches.typeand real enum values via field/record list commands, clarify the shared tuple DSL with--filter-json, and specify that scalar fields require scalarvalue(not arrays).