[rig-claude] Improve Claude dynamic-workflow compatibility for rig - #435
Merged
Merged
Conversation
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>
Contributor
Author
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅ |
Contributor
Author
There was a problem hiding this comment.
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Compatibility gap addressed
The primitive mapping table in
claude-workflow-conversion.mdwas missing two rows that a Claude dynamic-workflow porter needs: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 thatbudget.total=limits.maxAgentsor where to findwarnAgents.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.mdbut 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
warnAgentshas no direct Claude equivalent; the note documents it as a rig-only advisory threshold.maxWallMsis rig-only (no row needed; it appears in the newlimitsrow as an available option).