[rig-tasks] Daily rig evaluation — 2026-10-13 — 10/10 passed
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 12/100
- Issue 類型
- 文件
- 描述清晰度
- 需要釐清
- 活躍度
- 活躍
- 技術堆疊
- typescript
- 領域
- tooling
研究方向
This is an automated daily evaluation report, not a change request, and the body names no single file to edit. The documentation gaps it raises point at SKILL.md (guidance on choosing defineTool over prose for arithmetic) and at a possible references page on maxTurns partiality, citing sample 552. Done would mean a maintainer has triaged which of those suggestions become concrete work, so a newcomer should look for a specific follow-up issue rather than start here.
由索引模型根據 Issue 內容生成。
描述
Summary
Theme seed: 649507a8347906fbdfc3cd73c78f23c0.
All 10 seeded domain/artifact/constraint combinations were accepted (one task per theme, no duplicates, no unused themes):
| Theme | Outcome |
|---|---|
| language learning / nested catalogs / partial observations | accepted — 551 |
| weather and climate / resource schedules / partial observations | accepted — 552 |
| travel planning / linked records / bounded resource budgets | accepted — 553 |
| food and recipes / event timelines / conflicting sources | accepted — 554 |
| scientific experiments / linked records / partial observations | accepted — 555 |
| libraries and archives / tabular measurements / conflicting sources | accepted — 556 |
| energy usage / event timelines / conflicting sources | accepted — 557 |
| community events / nested catalogs / bounded resource budgets | accepted — 558 |
| media production / linked records / multilingual labels | accepted — 559 |
| education / linked records / conflicting sources | accepted — 560 |
The cached task-pool backlog (/tmp/gh-aw/cache-memory/task-pool.json) contained 28 entries, all already evaluated (18 duplicate, 10 published); none were eligible for reuse, so all 10 selection slots went to freshly seeded themes.
| Task | Description | Typecheck | Novelty / closest sample | Key finding |
|---|---|---|---|---|
| 1 (new) | nested-catalog-partial-rollup — recursive completion roll-up over an arbitrary-depth nested catalog, distinguishing missing-data from zero-progress | ✅ pass | new lesson vs. 512-nested-tsconfig-validator.md / 377-toml-config-extractor.md / 543-transit-stop-translation-joiner.md | Expander correctly used defineTool for the recursive aggregation logic (pure TS) rather than trying to push recursion into the prompt; clean separation of deterministic math from the agent call. |
| 2 (new) | resource-schedule-partial-lookup — defineTool lookup table bounded by an explicit maxTurns budget, leaving some stations unresolved purely due to budget |
✅ pass | new lesson vs. 549-shot-log-gap-reconciler.md / 541-station-report-budget.md / 543-transit-stop-translation-joiner.md | Model correctly distinguished "unresolved due to budget" from "not found in table" by instructing the agent to query in strict order and stop once turns run out — relies entirely on prompt discipline since maxTurns is enforced by the harness, not the model. |
| 3 (new) | linked-record-chain-budget-walk — two-phase workflow() resolving a nextId-linked record chain, then a budget phase cutting it off |
✅ pass | new lesson vs. 546-itinerary-budget-pipeline.md / 320-budget-aware-crawler.md / 548-warehouse-slot-allocator.md | Clean use of call.json per chain hop with a while (currentId) loop, then a separate deterministic TS loop for the budget cutoff — good separation of model-driven resolution vs. deterministic budget logic. |
| 4 (new) | conflicting-source-timeline-reconciler — median + cookbook-fallback tie-break across 3 disagreeing numeric sources | ✅ pass | new lesson vs. 218-ts-interface-conflict-checker.md / 380-npm-peer-dep-conflict-checker.md / 550-venue-booking-diff-writer.md | The tie-break rule (evenly-spaced values → fall back to cookbook) was expressed entirely in prose for the model to apply; this is inherently fuzzier than a defineTool-computed median, a design trade-off worth flagging (see below). |
| 5 (new) | linked-record-foreign-key-join — two-table FK join via defineTool, with dangling-reference handling |
✅ pass | new lesson vs. 543-transit-stop-translation-joiner.md / 549-shot-log-gap-reconciler.md / 08-extract-package-scripts.md | Tool cleanly encodes both lookup tables and the join logic in deterministic TS; the nullable adjustedValue/adjustmentReason pair is a reusable pattern for "value or reason it's missing." |
| 6 (new) | tabular-measurement-source-priority-reconciler — asymmetric priority-override rule with 4-way s.enum resolution-path classification |
✅ pass | new lesson vs. 545-recipe-conversion-delta.md / 207-config-drift-reconciler.md / 86-npm-audit-simplifier.md | The "zero digital count overridden by nonzero shelf count" edge case required careful prose to avoid ambiguity between "agreed" and "overridden" — the model handled it correctly on the first pass. |
| 7 (new) | parallel-timeline-conflict-flagger — Promise.all fan-out over two overlapping timelines, aggregator explicitly flags (not merges) timestamp disagreements |
✅ pass | new lesson vs. 550-venue-booking-diff-writer.md / 320-budget-aware-crawler.md / 529-parallel-wordfreq-aggregator.md | Straightforward reuse of the established Promise.all fan-out pattern from 529, but the reconciliation logic (agree/flag/passthrough) is deterministic TS in the aggregator phase rather than another model call — good choice given it's pure set logic. |
| 8 (new) | nested-catalog-budget-allocator — top-down volunteer-hour budget across a 3-level festival→stage→act catalog with subtree cutoff | ✅ pass | new lesson vs. 548-warehouse-slot-allocator.md / 541-station-report-budget.md / 546-itinerary-budget-pipeline.md | Entire allocation algorithm (proportional share, running-total cutoff, subtree-unfunding) is expressed in prose for the model to execute — this is the most arithmetic-heavy prompt in the batch and a candidate for a defineTool to guarantee correctness (see below). |
| 9 (new) | multilingual-linked-record-manifest — defineTool resolving a set of locales per shot→scene linked record, tracking per-entity missing locales |
✅ pass | new lesson vs. 543-transit-stop-translation-joiner.md / 547-lab-result-steered-translation.md / 549-shot-log-gap-reconciler.md | Clean extension of the single-locale lookup pattern (543) to a locale array input with a missingLocales array output — a good template for future multi-key lookup tools. |
| 10 (new) | linked-record-recency-reconciler-workflow — two-phase workflow: extract conflicting linked records, then recency+null-fallback reconcile with p.write audit trail |
✅ pass | new lesson vs. 207-config-drift-reconciler.md / 550-venue-booking-diff-writer.md / 546-itinerary-budget-pipeline.md | Combines extraction/reconciliation phase split with a p.write side effect in the second phase — a reusable pattern for "resolve, then persist an audit trail" workflows. |
Problems encountered
No typecheck failures this run — all 10 generated programs passed --typecheck on the first attempt.
One environment/infrastructure problem was encountered and resolved during setup, unrelated to the rig codebase itself:
npm ciinitially failed repeatedly withDEPTH_ZERO_SELF_SIGNED_CERTerrors against thems-feed-25.pkgs.visualstudio.com1ES proxy feed referenced in the committedpackage-lock.json'sresolvedURLs, and separately with npm 10.9.9's "Exit handler never called!" bug. Root cause: the corporate squid proxy in this sandbox could reachregistry.npmjs.orgdirectly (confirmed viacurl) but not the 1ES feed host. Fix: locally patchedpackage-lock.jsonto pointresolvedURLs atregistry.npmjs.orginstead of the feed, rannpm cisuccessfully, then restored the original (feed-pointing)package-lock.jsonbefore committing — no lockfile changes are included in the PR.
Separately, the task-generator and rig-expander subagents' default ("small"/"large") model routing failed consistently with 400 Cannot translate Copilot request feature 'frequency_penalty' between Responses and Chat Completions. Routing model "gpt-5.4-mini"/"gpt-5.6-luna" to /responses is incompatible.... This is an infra routing issue, not a rig API problem. Both subagents succeeded immediately after retrying with an explicit claude-sonnet-5 model override.
Improvement opportunities
Missing or undiscoverable schema helpers (s.*)
No gaps surfaced this run. s.nullable, s.enum, s.record, and s.path all covered the needed shapes directly (tasks 1, 5, 6, 9, 10).
Missing or undiscoverable prompt helpers (p.*)
No gaps. p.bash heredocs comfortably embedded JSON, CSV, and line-oriented fixture data across all 10 tasks; p.write handled the one audit-trail side effect (task 10) without friction.
Error message quality
Not exercised this run — no typecheck failures occurred to evaluate error message clarity.
API ergonomics
- Two of the ten tasks (6 and especially 8) embed a non-trivial deterministic algorithm (asymmetric priority-override, proportional top-down budget allocation with subtree cutoff) entirely in prose for the model to execute, rather than offloading it to a
defineTool. This is a modeling choice available today, but SKILL.md could more strongly nudge "if the task is arithmetic/deterministic, preferdefineToolover prose" — the expander defaulted to prose-only for arithmetic-heavy tasks even thoughdefineToolwas available and used correctly elsewhere in the same batch (tasks 1, 2, 5, 9). - Task 2's budget semantics rely entirely on the agent self-regulating against
maxTurnsvia prompt instructions ("you will run out before you can query every station — stop when you run out"); there's no first-class way for the program itself to detect "the budget was hit" versus "the model just decided to stop early" other than trusting the model's own narration. A documented pattern (or harness-level turn-count introspection accessible to the prompt) for "tell me how many turns you have left" would make this lesson more robust and less reliant on the model accurately self-reporting its own exhaustion.
Candidate lint rules
No new lint rule is proposed this run — all patterns observed (nested defineTool recursion, maxTurns + tool budget, chain walks via call.json, Promise.all fan-out aggregation, s.enum resolution classifications) are either already idiomatic or are one-off prompt-engineering choices rather than repeated structural mistakes that linting could catch.
Documentation gaps
- SKILL.md's guidance on choosing
defineToolvs. prose-only arithmetic could be more explicit (see API ergonomics above) — currently the decision seems to default to the expander's judgment per-task rather than a documented rule of thumb. - No example in the reference docs currently demonstrates the "
maxTurnscreates a genuinely partial result set, distinct from in-table absence" pattern now captured in sample 552 — worth considering for a future references page on invocation-option-driven partiality, alongside the existingtimeout()addon guidance.
Tasks run today
- (new) nested-catalog-partial-rollup — bucket schemas, family nested-catalog-partial-rollup, lesson: recursive roll-up over variable-depth nested catalog distinguishing missing vs. zero, closest samples 512/377/543, novelty: neither validates+aggregates nor propagates null-for-unknown through parent levels
- (new) resource-schedule-partial-lookup — bucket tools, family resource-schedule-partial-lookup, lesson:
defineTool+maxTurnsbudget exhaustion leaving entries unresolved distinct from not-found, closest samples 549/541/543, novelty: neither caps tool-call turns to produce a budget-exhaustion-specific unresolved list - (new) linked-record-chain-budget-walk — bucket workflows, family linked-record-chain-budget-walk, lesson: linked-chain walk with cumulative cost cutoff reporting the cut point, closest samples 546/320/548, novelty: neither walks a
nextId-linked chain with a dollar-cost budget reporting the specific cut record - (new) conflicting-source-timeline-reconciler — bucket schemas, family conflicting-source-timeline-reconciler, lesson: 3-source median/tie-break reconciliation into one resolved value per step, closest samples 218/380/550, novelty: neither resolves 3 disagreeing numeric sources via a deterministic tie-break, only flags/diffs
- (new) linked-record-foreign-key-join — bucket tools, family linked-record-foreign-key-join, lesson: two-table FK join via one
defineToolwith dangling-reference handling, closest samples 543/549/08, novelty: neither joins two separate cross-referencing tables (vs. one flat lookup table) - (new) tabular-measurement-source-priority-reconciler — bucket schemas, family tabular-measurement-source-priority-reconciler, lesson: asymmetric priority-override rule with per-row enum classification across two full conflicting tables, closest samples 545/207/86, novelty: neither applies an override rule or classifies resolution path via enum
- (new) parallel-timeline-conflict-flagger — bucket workflows, family parallel-timeline-conflict-flagger, lesson: parallel fan-out over two overlapping timelines, explicit disagreement flagging instead of merging, closest samples 550/320/529, novelty: no parallel fan-in workflow sample flags (vs. merges/dedupes) overlapping-key disagreement
- (new) nested-catalog-budget-allocator — bucket schemas, family nested-catalog-budget-allocator, lesson: top-down budget allocation through a 3-level nested catalog with subtree-level cutoff, closest samples 548/541/546, novelty: neither allocates through nested (vs. flat) structure with cutoff propagating to whole subtrees
- (new) multilingual-linked-record-manifest — bucket tools, family multilingual-linked-record-manifest, lesson: multi-locale simultaneous resolution per linked record with per-entity missing-locale tracking, closest samples 543/547/549, novelty: 543 resolves only one fixed target locale per entity
- (new) linked-record-recency-reconciler-workflow — bucket workflows, family linked-record-recency-reconciler-workflow, lesson: two-phase extraction + recency/null-fallback reconciliation workflow with
p.writeaudit trail, closest samples 207/550/546, novelty: neither is a multi-phase workflow with a recency+null-fallback rule and persisted audit trail
Generated by Daily Rig Task Generator · copilot · auto · 786.9 AIC · ⌖ 22.9 AIC · ⊞ 11.4K · ◷
- 主要語言
- TypeScript
- 星號
- 14
- 分支
- 0
- 平均合併
- 3 小時 38 分鐘
- 30 天內合併 PR
- 29
環境準備
這個專案沒有提供開發容器、Dockerfile 或貢獻指南,環境需要你自己搭建:先看它的 README,通用步驟見我們的新手貢獻指南。
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
githubnext/rig 的其他 Issue
-
agentic-workflows
難度 3/5 半天 新手友好度 15/100
githubnext/rig#643 ·
維護者通常 1 天內回覆
-
agentic-workflows
難度 4/5 3-5 天 新手友好度 15/100
githubnext/rig#642 ·
維護者通常 1 天內回覆
-
agentic-workflows
難度 3/5 半天 新手友好度 22/100
githubnext/rig#641 ·
維護者通常 1 天內回覆
-
ai-agent automation
難度 3/5 1-3 小時 新手友好度 8/100
githubnext/rig#638 ·
維護者通常 1 天內回覆
-
ai-agent automation
難度 4/5 3-5 天 新手友好度 12/100
githubnext/rig#637 ·
維護者通常 1 天內回覆
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 62/100
one-zero-eight/apply-bot#39 ·
-
難度 2/5 1-3 小時 新手友好度 72/100
bigbluebutton/bbb-ui-components-react#108 ·
維護者通常 2 天內回覆
-
難度 2/5 1-3 小時 新手友好度 82/100
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 70/100
維護者通常 1 天內回覆
-
high priority
難度 2/5 1-3 小時 新手友好度 62/100
CI-CMG/deep-sea-corals-exb#84 · 1 則留言 ·