Skip to content

[rig-tasks] Daily rig evaluation — 2026-07-28 — 10/10 passed #241

Description

@github-actions

Summary

Task Description Typecheck Key finding
1 (reused) Git commit annotator with nano subagent ✅ pass Subagent delegation with agents: { commitSummarizer } and p.writeOutput worked cleanly
2 (reused) NPM script dependency mapper ✅ pass defineTool with s.record(s.object(...)) output and repair() addon composed well
3 (reused) Markdown link checker ✅ pass async defineTool with node:child_process execSync and s.optional(s.int) for httpCode
4 (reused) Package version drift reporter ✅ pass p.writeOutput + report: s.string in output schema for persisted markdown
5 (reused) Git author stats aggregator ✅ pass Simple s.record(s.object(...)) with two p.bash intents; clean and minimal
6 (reused) TypeScript path alias validator ✅ pass defineTool with node:fs existsSync (sync import at module top-level); clean
7 (new) GitHub Actions workflow timing analyzer ✅ pass p.glob + p.bash combo; defineTool regex parsing with suggestions s.array(s.string)
8 (new) Binary file detector ✅ pass async defineTool with node:fs/promises buffer sampling; steering() addon for large file sets
9 (new) TypeScript interface inheritance graph ✅ pass defineTool with stateful regex loop over interface declarations; s.enum("root","derived","leaf") for depth
10 (new) Dependency license compatibility matrix ✅ pass defineTool with SPDX classification logic; s.record(s.object(...)) + hasConflicts s.boolean

Problems encountered

No failures this run. All 10 programs passed typecheck on the first attempt.


Improvement opportunities

Missing or undiscoverable schema helpers (s.*)

  • No issues encountered. The current set of helpers (s.optional, s.int, s.path, s.url, s.enum, s.record, s.array, s.boolean) covered all output shapes needed without workarounds.

Missing or undiscoverable prompt helpers (p.*)

  • p.glob discoverability: For task 7, p.glob(".github/workflows/*.yml") is the right choice for static path discovery, but it only produces a file list — a p.readAll(p.glob(...)) combined intent would eliminate the need for a second p.bash call to read file contents. Currently requires two separate intents: p.glob(...) for discovery and p.bash("find ... | xargs cat") for content.
  • p.readAllInput: Not exercised this run but would be useful for callers passing arrays of paths.

Error message quality

No typecheck errors observed this run.

API ergonomics

  • p.glob + content reading: The pattern of p.glob(pattern) for discovery followed by p.bash("find ... | xargs cat") for content is slightly redundant. A combined p.readGlob(pattern) intent that reads all matching files into a single block would be more ergonomic and match p.readAll's semantics.
  • Subagent input passing: For task 1, the coordinator must construct a { commitLine } input object and call commitSummarizer per-commit. There's no built-in map primitive, so the instructions must tell the coordinator to loop. This is correct per the composition model but requires careful prompt wording.
  • repair() vs steering(): The two addons have subtly different roles (retry on parse failure vs. final-turn warning) but SKILL.md's decision table only briefly covers this. Task 8 used steering() alone (large file iteration), while tasks 2/3/9/10 used repair(). The decision boundary could be clearer in references/composition.md.

Candidate lint rules

  • p.glob without content read: Programs that call p.glob(pattern) but then also do p.bash("find ... | xargs cat") for the same pattern are redundant. A lint rule no-redundant-glob-bash could flag this pattern: invalid = p.glob(pattern) + p.bash("find ... xargs cat") for same pattern; valid = p.glob(pattern) for listing only OR p.bash("find ... | xargs cat") for content only. Autofix: replace the pair with a single p.bash.

Documentation gaps

  • references/composition.md should include a concrete example showing steering() vs repair() side-by-side with the scenario each solves. Currently the distinction requires reading both the SKILL.md table and the reference.
  • SKILL.md's p.glob entry should note that it only produces paths — a follow-up read intent is needed to get file content.

Tasks run today

  • (reused) Git commit annotator with nano subagent using agents: { commitSummarizer } and p.writeOutput
  • (reused) NPM script dependency mapper with defineTool parseScriptDeps and repair() addon
  • (reused) Markdown link checker with async defineTool checkUrl using curl
  • (reused) Package version drift reporter using p.bash npm outdated and p.writeOutput
  • (reused) Git author stats aggregator using dual p.bash intents
  • (reused) TypeScript path alias validator with defineTool checkAlias using node:fs existsSync
  • (new) GitHub Actions workflow timing analyzer using p.glob + defineTool parseWorkflowSteps with repair()
  • (new) Binary file detector using async defineTool detectBinary with buffer sampling and steering()
  • (new) TypeScript interface inheritance graph builder with regex defineTool and repair()
  • (new) Dependency license compatibility matrix with SPDX classification defineTool and repair()

Generated by Daily Rig Task Generator · sonnet46 94.1 AIC · ⌖ 6.59 AIC · ⊞ 6.7K ·

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions