[rig-tasks] Daily rig evaluation — 2026-09-01 — 10/10 passed

Abierto Apto para principiantes
#522 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
74/100
Tipo de issue
Documentación
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
typescript

Línea de trabajo

Comienza con la tabla de decisiones de alta frecuencia y la sección de referencia rápida de SKILL.md, y luego compáralas con los requisitos de metadatos del workflow y los hallazgos sobre prompt-helper de este issue. Documenta los requisitos de metadatos del workflow, el patrón body({ call }), los prompts de agente no-undefined y p.readOptional con un fallback. Se considera terminado cuando las carencias enumeradas están cubiertas con ejemplos concisos y la referencia existente sigue siendo coherente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

ai-agent automation

Summary

Task Description Kind Typecheck Key finding
1 (reused) Dockerfile ENV inspector agent ✅ pass Clean use of async defineTool + node:fs/promises readFile with dual regex for KEY=VALUE and KEY VALUE forms
2 (reused) NPM script prefix analyzer agent ✅ pass as const on return values correctly preserves literal types for s.enum comparison
3 (reused) INI config file parser agent ✅ pass p.readInput correctly used with caller-supplied s.object input; tool parses sections/key-value cleanly
4 (reused) Git reflog inspector agent ✅ pass steering() addon appropriate for classification task; fallback `
5 (reused) Source line length auditor agent ✅ pass Good use of find with p.bash + async defineTool; s.optional(s.string) for mostVerboseFile is correct
6 (reused) NPM script dep workflow workflow ✅ pass Initial errors: call incorrectly imported from "rig" (not exported), meta missing description, call(agent, undefined) not valid — all fixed
7 (new) HTML form field extractor agent ✅ pass Initial error: exactOptionalPropertyTypes requires explicit conditional assignment for optional fields rather than assigning undefined; fixed with guarded push pattern
8 (new) Dotenv template validator agent ✅ pass p.readOptional with empty string fallback is idiomatic; steering() appropriate for comparison/decision tasks
9 (new) TypeScript namespace usage reporter agent ✅ pass p.glob + per-file async defineTool is the correct fan-out pattern; augmentation detection via declare module/namespace regex is precise
10 (new) Multi-stage artifact pipeline workflow ✅ pass Initial errors: same call import issue + missing meta.description as task 6; fixed using body: async ({ call }) => destructuring and TypeScript-owned result assembly

Problems encountered

Task 6 — NPM script dep workflow (initial failures)

What the code tried to do: A workflow() with two sequential agent calls passing structured output from scriptGraphBuilder to cycleDetector.

Errors:

error TS2305: Module '"rig"' has no exported member 'call'.
error TS2769: Property 'description' is missing in type '{ name: string; }' but required in type 'WorkflowMeta'.
error TS2345: Argument of type 'undefined' is not assignable to parameter of type 'string | PromptIntent | PromptBuilder'.

Root cause: Three distinct mistakes:

  1. call is not exported from "rig" — it is destructured from the body({ call }) parameter or imported from "rig/globals".
  2. workflow({ meta: { name } }) requires a description field in WorkflowMeta.
  3. call(agent, undefined) is not valid — agents always receive a string prompt or typed input.

Fix: Used body: async ({ call }) => destructuring, added description to meta, passed a string prompt to agents.

Task 7 — HTML form field extractor (initial failure)

What the code tried to do: Push objects with optional name/id fields by assigning undefined values.

Errors:

error TS2379: exactOptionalPropertyTypes: 'string | undefined' is not assignable to type 'string'.

Root cause: With exactOptionalPropertyTypes: true, assigning undefined to an optional field that expects only string is rejected. The fix is to conditionally include the property only when the value is defined.

Fix: Build the entry object without optional fields, then conditionally assign them.

Task 10 — Multi-stage artifact pipeline (initial failures)

Same call import and meta.description errors as task 6. Fixed identically.


Improvement opportunities

Missing or undiscoverable schema helpers (s.*)

No missing helpers this run. The existing set (s.object, s.record, s.array, s.enum, s.optional, s.path, s.int, s.number, s.boolean, s.string) covered all needs.

Missing or undiscoverable prompt helpers (p.*)

p.readOptional with an empty-string fallback (task 8) is not clearly documented in SKILL.md's quick reference table. Consider adding it as a distinct row: p.readOptional(path, fallback?) — currently documented only in the focused reference.

Error message quality

The exactOptionalPropertyTypes error (TS2379) is confusing because it mentions a parameter type mismatch rather than naming the root cause directly. The fix (conditional assignment) is non-obvious from the error text alone.

The call import error (TS2305: Module '"rig"' has no exported member 'call') is clear, but nothing in the error guides toward the correct body({ call }) destructuring pattern. A short comment in SKILL.md would prevent this.

API ergonomics
  1. call discoverability: The most common workflow mistake is import { call } from "rig". SKILL.md's composition rule could add a note: "call is available via body({ call }) destructuring — do not import it from "rig"."
  2. workflow meta requirement: description being required in WorkflowMeta is not called out in the high-frequency decisions table. A brief reminder alongside the workflow() row would prevent the error.
  3. call(agent, undefined) vs call(agent, string): It is unclear from the table that agents always require a non-null prompt. Noting "pass a string prompt or typed input; never undefined" would help.
Candidate lint rules

Rule: no-rig-call-import

  • Invalid: import { agent, call } from "rig";
  • Valid: body: async ({ call }) => { ... } or import { call } from "rig/globals";
  • Why model-confusing: call looks like a plain function export given how agent and workflow are imported. The destructuring pattern is non-obvious without reading the full reference.
  • Safe autofix: possible — remove call from the "rig" import and add import { call } from "rig/globals" as a fallback (with a comment to prefer destructuring inside body).
Documentation gaps
  • SKILL.md high-frequency decisions table should add: workflow meta → must include both name and description.
  • SKILL.md should note that call inside workflow.body is always obtained via destructuring, not via import.
  • p.readOptional deserves a row in the quick-reference table with an example fallback value.

Tasks run today

  • (reused) Dockerfile ENV instruction parser
  • (reused) NPM script command prefix analyzer
  • (reused) INI config file parser
  • (reused) Git reflog inspector
  • (reused) Source file line length auditor
  • (reused) NPM script dependency workflow
  • (new) HTML form field extractor
  • (new) Dotenv template validator
  • (new) TypeScript namespace usage reporter
  • (new) Multi-stage build artifact pipeline

Generated by Daily Rig Task Generator · sonnet46 164.3 AIC · ⌖ 9.36 AIC · ⊞ 6.8K ·

Lenguaje dominante
TypeScript
Estrellas
13
Forks
0
Merge medio
22 h 53 min
PR fusionados (30 d)
14

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de githubnext/rig

Todos los issues de githubnext/rig

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.