Skip to content

[rig-tasks] Daily rig evaluation — 2026-08-27 — 10/10 passed #495

Description

@github-actions

Summary

Task Description Kind Typecheck Key finding
1 (reused) Git hook scanner agent ✅ pass defineTool with node:fs/promises stat for executability check worked cleanly; s.enum hookType correctly constrained
2 (reused) Merge strategy selector agent ✅ pass Multi-agent coordinator pattern with sequential delegation; s.enum on mergeRecommendation and dominantArea both typed correctly
3 (reused) Git tag message extractor agent ✅ pass node:child_process execSync in defineTool handler with graceful catch for lightweight tags; s.optional(s.string) for message
4 (reused) TS import alias resolver agent ✅ pass p.readOptional + p.bash grep combo worked; steering() + repair() addon pair in correct order
5 (reused) JSON schema property counter agent ✅ pass Recursive TypeScript logic in defineTool handler with typed unknown walk parameter; s.record(s.int) for depth map
6 (reused) Changelog entry workflow agent ✅ pass Three-agent sequential coordinator pattern; each subagent uses typed input/output; no workflow() needed
7 (new) Node module path resolver agent ✅ pass node:module createRequire + isBuiltin in async handler; p.readOptional for fallback package.json read
8 (new) Source file checksum reporter agent ✅ pass node:crypto createHash md5 with node:fs/promises readFile; s.record(s.object(...)) for nested file map
9 (new) Three-way project health agent ✅ pass Three subagents delegated sequentially from coordinator; s.enum("healthy","warning","critical") for health status
10 (new) TS conditional type extractor agent ✅ pass p.glob + defineTool pattern for per-file analysis; regex for conditional types with infer detection

Problems encountered

No failures this run.


Improvement opportunities

Missing or undiscoverable schema helpers (s.*)

No missing helpers observed this run. All needed shapes were expressible with s.record, s.object, s.optional, s.enum, and s.int.

Missing or undiscoverable prompt helpers (p.*)

  • p.readOptional is well-suited for optional config files (tsconfig.json, .env) but its fallback parameter is not prominently shown in SKILL.md examples. A short example with fallback would help.
  • For the p.glob + per-file tool pattern, the SKILL.md note "there is no p.readAll(globPattern) overload" is helpful but easy to miss. A positive example showing the correct p.glob + defineTool loop pattern would be clearer.

Error message quality

No typecheck failures this run; error messages not exercised.

API ergonomics

  • The three-agent sequential coordinator pattern (task 6 and 9) requires a coordinator agent that instructs the LLM to call subagents in order. This pattern is well-documented but verbose for simple pipelines — a lightweight pipeline([a, b, c]) workflow helper could reduce boilerplate.
  • defineTool handler arrow callbacks requiring explicit : string type annotations (under noImplicitAny) is a frequent stumbling point. A lint rule reminder or a note in the tool section would help.

Candidate lint rules

Rule: no-implicit-any-callback-in-tool-handler

  • Motivation: Arrow callbacks inside defineTool handlers (e.g., .map(line => ...)) fail under noImplicitAny when the parameters schema doesn't propagate the type. Models frequently omit : string annotations.
  • Invalid: content.split("\n").map(line => line.trim())
  • Valid: content.split("\n").map((line: string) => line.trim())
  • Autofix: Insert : string annotation when the array element type is deterministic from context.

Documentation gaps

  • SKILL.md mentions p.readOptional(path, fallback?) but the fallback parameter is not shown in an example. Adding p.readOptional("tsconfig.json", "{}") to the high-frequency decision table would reduce misuse.
  • The composition reference could include a three-agent sequential example (extract → classify → format) since this is a common LLM pipeline pattern.

Tasks run today

  • (reused) Git hook file scanner: uses p.bash ls .git/hooks/, async defineTool analyzeHookFile with node:fs/promises readFile and stat detecting shebang/executability
  • (reused) Merge strategy selector workflow: two subagents — branchDiffAgent and conflictRiskAgent — coordinator produces mergeRecommendation s.enum(fast-forward/squash/merge/rebase)
  • (reused) Git tag message extractor: uses p.bash git tag -l, defineTool fetchTagMessage using node:child_process execSync, classifies as annotated/lightweight
  • (reused) TypeScript import alias resolver: reads tsconfig.json via p.readOptional, uses p.bash grep for alias imports, defineTool resolveAlias
  • (reused) JSON schema property counter: accepts input s.object({schemaFile: s.string}), reads via p.readInput, defineTool countPropertiesAtLevel recursively counting nested properties
  • (reused) Changelog entry workflow: three sequential subagents — commitCollector, commitClassifier, changelogFormatter — chained via coordinator
  • (new) Node.js module path resolver: accepts input s.object({moduleName: s.string}), defineTool resolveModulePath using node:module createRequire
  • (new) Source file checksum reporter: uses p.bash find, defineTool computeChecksum using node:crypto createHash md5 and node:fs/promises readFile
  • (new) Three-way project health workflow: three subagents — dependencyAuditor, testCoverageChecker, typeCheckAgent — coordinator produces overallHealth s.enum
  • (new) TypeScript conditional type extractor: uses p.glob src/**/*.ts, defineTool extractConditionalTypes with regex for T extends X ? Y : Z patterns

Generated by Daily Rig Task Generator · sonnet46 108.4 AIC · ⌖ 9.44 AIC · ⊞ 6.8K ·

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions