[rig-claude] Improve Claude dynamic-workflow compatibility for rig - #325
Conversation
The sample now matches the worked-conversion example in claude-workflow-conversion.md, making the args→input translation visible in code rather than only in docs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅ |
There was a problem hiding this comment.
Skills-Based Review 🧠
Applied /grill-with-docs — clean documentation-only change; approving with one minor note.
📋 Key Themes & Highlights
Positive Highlights
- ✅ Side-by-side Claude/rig snippets make the
args→inputmapping immediately concrete - ✅ Inline comment in the rig code reinforces the mapping at the right reading level
- ✅ Hardcoded list replaced with
input.areas, making the sample genuinely runnable against caller-supplied data - ✅ PR description is thorough and accurately describes scope
- ✅ Typecheck validation confirmed
Minor Note
Line 23 says "everything else maps 1-to-1" but the pipeline body differs slightly between the Claude snippet and the rig port (filter(Boolean).flatMap vs .flatMap(r => r?.findings ?? [])). This is idiomatic TypeScript and fine in practice, but the wording could set a false expectation for readers trying a literal port. Consider softening to "the structure maps 1-to-1" or adding a short note that null-handling idioms differ.
🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · sonnet46 23 AIC · ⌖ 4.1 AIC · ⊞ 6.3K
Comment /matt to run again
Compatibility gap addressed
The
310-workflow-audit-verify.mdsample — the canonical Claude-to-rig port example — hardcoded itsareaslist, hiding the most common first step when porting a Claude dynamic workflow: translatingargs→input.Claude dynamic workflows read caller data from an untyped
argsglobal. Rig's equivalent is a typedinputschema declared on the workflow. Until this change, no runnable sample showed this mapping end-to-end.Why this improves transfer
input: s.object({ areas: s.array(s.string(...)) })to the audit workflow soinput.areasdirectly mirrorsargs.areasfrom the Claude original.args→inputwith ans.objectschema.claude-workflow-conversion.md, reinforcing the same mapping in runnable code.Files changed
skills/rig/samples/310-workflow-audit-verify.md— typedinput, side-by-side Claude/rig code,args→inputcallout commentValidation
✅ 1 passed (412 skipped) — typechecks all extracted rig programs including the updated sample.
Remaining intentional differences
{ effort: "high" }— not modeled in rig; documented as "encode importance structurally or in the model id" in the conversion table.{ agentType: "Explore" }— no built-in read-only agent type; documented as "prompt wording plus a narrow tools list".