Skip to content

[rig-claude] Improve Claude dynamic-workflow compatibility for rig - #435

Merged
pelikhan merged 1 commit into
mainfrom
rig-claude-compat/2026-08-16-8c829d06c39baa42
Aug 16, 2026
Merged

[rig-claude] Improve Claude dynamic-workflow compatibility for rig#435
pelikhan merged 1 commit into
mainfrom
rig-claude-compat/2026-08-16-8c829d06c39baa42

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Compatibility gap addressed

The primitive mapping table in claude-workflow-conversion.md was missing two rows that a Claude dynamic-workflow porter needs:

  1. Session-level budget/concurrency cap — Claude dynamic workflows let the calling session set budget and concurrency limits. The table showed budget.total / spent() / remaining() (the in-workflow read side) but had no row explaining how to configure the budget from the caller: runWorkflow(wf, { limits: { maxAgents, concurrency, warnAgents, maxWallMs } }). Without this row, a porter doesn't know that budget.total = limits.maxAgents or where to find warnAgents.

  2. Session progress / event stream — Claude dynamic workflows expose a progress callback at the session level. The table had no corresponding rig row for runWorkflow(wf, { onEvent: (event) => ... }). The new row lists all event types and notes that observer errors never affect the run.

Both concepts were documented in dynamic-workflows.md but absent from the conversion table, requiring a porter to find them by reading a second reference instead of consulting the table they were already scanning.

Why this improves transfer

The conversion table is the first thing a Claude workflow porter reads. Gaps in the table break the mental model — the porter either misses a concept entirely or wastes time hunting through multiple references. Adding these two rows makes the table the single authoritative mapping for the full surface area porters care about.

Files changed

  • skills/rig/references/claude-workflow-conversion.md — added two rows to the primitive mapping table (lines 33–34)

Validation

Docs-only change. No API, test, or sample files were modified; no build or test run required. Links in the new rows point to the same reference (no new external targets introduced).

Remaining intentional differences

  • warnAgents has no direct Claude equivalent; the note documents it as a rig-only advisory threshold.
  • maxWallMs is rig-only (no row needed; it appears in the new limits row as an available option).
  • All other behavioral differences (failure holes, pipeline stage signature, budget units, sandbox restrictions) remain as documented in the "Behavior differences" section.

Generated by Daily Rig Claude Dynamic Workflow Compatibility · sonnet46 83.6 AIC · ⌖ 8.07 AIC · ⊞ 5.4K ·

The primitive mapping table in claude-workflow-conversion.md was missing
two rows that matter when porting:

- Session-level budget/concurrency cap → runWorkflow limits
  (maxAgents, concurrency, warnAgents, maxWallMs with their defaults)
- Session progress/event stream → runWorkflow onEvent
  (lists all event types and notes observer errors are swallowed)

Both concepts exist in Claude dynamic workflows (budget cap set by the
caller session, event streaming via progress callbacks) but had no
corresponding rig row, leaving porters to discover them by reading
dynamic-workflows.md instead of the conversion table.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@pelikhan
pelikhan marked this pull request as ready for review August 16, 2026 13:28
@pelikhan
pelikhan merged commit 466e751 into main Aug 16, 2026
1 check passed
@github-actions

github-actions Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor Author

🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Skills-Based Review

Applied /codebase-design — all facts verified against source; the addition is accurate and well-placed.

Positive highlights:

  • Default values (maxAgents=1000, warnAgents=25, concurrency=2-16) match rig.ts exactly
  • WorkflowEvent union types listed are complete and match the TypeScript type definition
  • Observer errors never affect the run — verified by the try/catch in emit()
  • Both rows are additive — no existing content disturbed

Minor observation: the left-column entries name rig concepts rather than Claude dynamic workflow primitives, which deviates slightly from the column header intent. This is purposeful (the table helps porters find rig equivalents for things with no Claude name) and works fine in context.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · sonnet46 25.3 AIC · ⌖ 4.05 AIC · ⊞ 6.3K
Comment /matt to run again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant