Summary
| Task |
Description |
Kind |
Typecheck |
Key finding |
| 1 (reused) |
Package scripts trio workflow |
workflow |
✅ pass |
Three-phase workflow using Promise.all for parallel lister+health checks, clean phase() annotations |
| 2 (reused) |
TypeScript const enum extractor |
agent |
✅ pass (after fix) |
Initially imported steering from "rig/addons" — fixed to import from "rig" directly |
| 3 (reused) |
HTTP access log stats |
agent |
✅ pass (after fix) |
Initially imported repair from "rig/addons" — fixed to import from "rig" directly |
| 4 (reused) |
TypeScript spread usage counter |
agent |
✅ pass (after fix) |
Initially imported steering from "rig/addons" — same fix; regex heuristic approximates spread classification |
| 5 (reused) |
Git hook file scanner |
agent |
✅ pass (after fix) |
Initially imported repair from "rig/addons" — fixed; node:fs/promises stat() for executable bit check |
| 6 (reused) |
Merge strategy selector |
workflow |
✅ pass |
Two parallel subagents via Promise.all, call.json coordinator, clean enum output |
| 7 (new) |
INI config file parser |
agent |
✅ pass (after fix) |
Initially imported repair from "rig/addons" — fixed; section-aware line parser in defineTool handler |
| 8 (new) |
File crypto hash reporter |
agent |
✅ pass (after fix) |
Initially imported steering from "rig/addons" — fixed; uses node:crypto createHash sha256 |
| 9 (new) |
Git reflog classifier workflow |
workflow |
✅ pass |
Two-stage workflow with clean sequential call(); enum coverage for all common git operations |
| 10 (new) |
Package JSON field auditor |
agent |
✅ pass (after fix) |
Initially imported repair from "rig/addons" — fixed; defineTool returns completenessScore 0-100 |
Problems encountered
rig/addons import error (8/10 tasks)
What happened: Generated programs imported repair and steering from "rig/addons":
import { repair } from "rig/addons";
Exact error:
error TS2307: Cannot find module 'rig/addons' or its corresponding type declarations.
Root cause: repair and steering are re-exported from "rig" directly, not from a subpath. The SKILL.md canonical example doesn't include an addon import, so the correct form isn't immediately discoverable. Inspecting existing samples (e.g., 91-commit-format-suggester.md) reveals:
import { agent, p, s, repair, steering } from "rig";
Fix applied: Changed all addon imports to the top-level "rig" import.
Improvement opportunities
Missing or undiscoverable schema helpers (s.*)
No issues encountered with schema helpers this run. s.record, s.enum, s.optional, s.int, s.path all worked as expected.
Missing or undiscoverable prompt helpers (p.*)
No misuse of p.* helpers this run.
Error message quality
The error Cannot find module 'rig/addons' is clear enough — the root cause is documentation, not error quality. The error correctly identifies the import problem.
API ergonomics
Addon import discoverability: The most common failure across 8/10 tasks was importing repair/steering from a nonexistent "rig/addons" subpath. The SKILL.md construction rules table mentions repair() and steering() but does not show the import form. A single line like:
import { agent, p, s, repair, steering } from "rig";
in the canonical example (or in a high-frequency decisions row) would eliminate this class of error.
p.readInput vs p.read(input.field): When the agent accepts input: s.object({ filePath }), the correct way to read the file is p.readInput("filePath"). This was used correctly in task 3 and 7, but may be confused with p.read(input.filePath) which doesn't work (input isn't available at template construction time).
Candidate lint rules
Rule: no-rig-addons-subpath
- Problem: Models consistently generate
import { repair } from "rig/addons" because rig/addons is a plausible-but-wrong subpath.
- Invalid:
import { repair } from "rig/addons"
- Valid:
import { repair } from "rig"
- Why confusing: The name "addons" suggests a subpackage. No other rig API is a subpath except
"rig/globals", which reinforces the belief that subpaths exist.
- Safe autofix: Yes — replace the import source with
"rig" and merge named imports.
Documentation gaps
- SKILL.md canonical example should include at least one addon to show the correct import form. Currently the example only imports
{ agent, p, s }.
- High-frequency decisions table row for addons should show:
import { repair, steering } from "rig" (not just the call form repair() / steering()).
p.readInput documentation — clarify that p.readInput("field") is the only way to read a caller-supplied path at prompt construction time; p.read(input.field) is not valid.
Tasks run today
- (reused) Package scripts trio workflow: three sequential subagents reading package.json scripts and checking npm dependency health
- (reused) TypeScript const enum extractor: p.glob + regex for const enum declarations with steering
- (reused) HTTP access log stats: input s.object({logFile}), parseLogLine tool, statusClass enum, repair addon
- (reused) TypeScript spread usage counter: p.glob + regex for object/array spread patterns with steering
- (reused) Git hook file scanner: ls .git/hooks/, analyzeHookFile tool checking shebang/executability
- (reused) Merge strategy selector workflow: two parallel subagents for diff analysis and conflict detection
- (new) INI config file parser: input s.object({configFile}), parseIniSection tool, repair addon
- (new) File crypto hash reporter: p.bash find + hashFile tool using node:crypto SHA-256, steering addon
- (new) Git reflog classifier workflow: two sequential subagents fetching and classifying reflog entries
- (new) Package JSON field auditor: p.read package.json + checkFieldPresence tool, repair addon, completeness score 0-100
Generated by Daily Rig Task Generator · sonnet46 100.7 AIC · ⌖ 10.3 AIC · ⊞ 6.8K · ◷
Summary
steeringfrom"rig/addons"— fixed to import from"rig"directlyrepairfrom"rig/addons"— fixed to import from"rig"directlysteeringfrom"rig/addons"— same fix; regex heuristic approximates spread classificationrepairfrom"rig/addons"— fixed; node:fs/promises stat() for executable bit checkrepairfrom"rig/addons"— fixed; section-aware line parser in defineTool handlersteeringfrom"rig/addons"— fixed; uses node:crypto createHash sha256repairfrom"rig/addons"— fixed; defineTool returns completenessScore 0-100Problems encountered
rig/addonsimport error (8/10 tasks)What happened: Generated programs imported
repairandsteeringfrom"rig/addons":Exact error:
Root cause:
repairandsteeringare re-exported from"rig"directly, not from a subpath. The SKILL.md canonical example doesn't include an addon import, so the correct form isn't immediately discoverable. Inspecting existing samples (e.g.,91-commit-format-suggester.md) reveals:Fix applied: Changed all addon imports to the top-level
"rig"import.Improvement opportunities
Missing or undiscoverable schema helpers (
s.*)No issues encountered with schema helpers this run.
s.record,s.enum,s.optional,s.int,s.pathall worked as expected.Missing or undiscoverable prompt helpers (
p.*)No misuse of
p.*helpers this run.Error message quality
The error
Cannot find module 'rig/addons'is clear enough — the root cause is documentation, not error quality. The error correctly identifies the import problem.API ergonomics
Addon import discoverability: The most common failure across 8/10 tasks was importing
repair/steeringfrom a nonexistent"rig/addons"subpath. The SKILL.md construction rules table mentionsrepair()andsteering()but does not show the import form. A single line like:in the canonical example (or in a high-frequency decisions row) would eliminate this class of error.
p.readInputvsp.read(input.field): When the agent acceptsinput: s.object({ filePath }), the correct way to read the file isp.readInput("filePath"). This was used correctly in task 3 and 7, but may be confused withp.read(input.filePath)which doesn't work (input isn't available at template construction time).Candidate lint rules
Rule:
no-rig-addons-subpathimport { repair } from "rig/addons"becauserig/addonsis a plausible-but-wrong subpath.import { repair } from "rig/addons"import { repair } from "rig""rig/globals", which reinforces the belief that subpaths exist."rig"and merge named imports.Documentation gaps
{ agent, p, s }.import { repair, steering } from "rig"(not just the call formrepair()/steering()).p.readInputdocumentation — clarify thatp.readInput("field")is the only way to read a caller-supplied path at prompt construction time;p.read(input.field)is not valid.Tasks run today