Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Ouverte Adaptée aux débutants
#522 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
74/100
Type d'issue
Documentation
Clarté
Plutôt claire
Activité
Active
Stack technique
typescript

Piste de recherche

Commencez par le tableau des décisions fréquentes et la section de référence rapide de SKILL.md, puis comparez-les aux exigences de métadonnées du workflow et aux conclusions concernant prompt-helper dans cette issue. Documentez les exigences de métadonnées du workflow, le pattern body({ call }), les prompts d’agent non-undefined et p.readOptional avec un fallback. Le travail est considéré comme terminé lorsque les lacunes listées sont couvertes par des exemples concis et que la référence existante reste cohérente.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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 · ◷

Langage dominant
TypeScript
Étoiles
13
Forks
0
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de githubnext/rig

Toutes les issues de githubnext/rig

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.