Skip to content

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

Merged
pelikhan merged 1 commit into
mainfrom
rig-claude-compat/2026-08-09-75fadf5ee4a6b8c0
Aug 9, 2026
Merged

[rig-claude] Improve Claude dynamic-workflow compatibility for rig#383
pelikhan merged 1 commit into
mainfrom
rig-claude-compat/2026-08-09-75fadf5ee4a6b8c0

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Compatibility gap addressed

The primitive mapping table in claude-workflow-conversion.md incorrectly stated that call.json's schema argument must be s.object({ ... }). This is a meaningful inaccuracy: Claude Code dynamic workflows only support object schemas in agent(prompt, { schema }), but rig's call.json(prompt, schema) accepts any s.* schema — s.enum, s.array, s.string, or any nested combination — and infers the TypeScript return type automatically.

A user porting a Claude workflow that returns an enum classification (e.g. "high" | "medium" | "low") would naturally try call.json(prompt, s.enum(...)) and it would work, but the documentation said otherwise, creating confusion about what is and isn't supported.

Why this improves transfer from Claude dynamic workflows to rig

  • Corrects a false constraint that would mislead Claude workflow users about rig's capabilities
  • Makes the richer schema support discoverable via the behavior-differences section
  • Aligns the docs with the actual implementation (verified in rig.ts: call.json accepts Output extends Schema)

Files changed

  • skills/rig/references/claude-workflow-conversion.md — two edits:
    1. Updated the await agent(prompt, { schema }) table row to describe schema as any s.* value with a note that Claude restricts to objects but rig does not
    2. Added a Richer schema types bullet to the "Behavior differences to keep in mind" section

Validation run

Docs-only change. No broken links were introduced; existing samples and references are unaffected.

Remaining intentional differences

  • { effort: "high" } — not modeled in rig; users encode importance structurally or via model id
  • { agentType: "Explore" } — no built-in read-only agent type; addressed via prompt wording and narrow tool lists
  • No resume journal, worktree isolation, or human checkpoints (runtime features, not API surface)

Generated by Daily Rig Claude Dynamic Workflow Compatibility · sonnet46 65.8 AIC · ⌖ 8.14 AIC · ⊞ 5.4K ·

The primitive mapping table incorrectly stated that call.json's schema
argument is s.object({ ... }). In fact, call.json accepts any s.* schema
— s.enum, s.array, s.string, or any nested combination — and infers the
TypeScript return type automatically. Claude dynamic workflows only
support object schemas; this rig capability is a meaningful difference.

- Fix the table row for `await agent(prompt, { schema })` to describe the
  full schema type rather than restricting to s.object.
- Add a 'Richer schema types' bullet to the behavior-differences section
  so Claude users know the schema restriction no longer applies.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@pelikhan
pelikhan marked this pull request as ready for review August 9, 2026 10:54
@pelikhan
pelikhan merged commit 3f22e09 into main Aug 9, 2026
1 check passed
@github-actions

github-actions Bot commented Aug 9, 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 /grill-with-docs — the changes are accurate, well-placed, and use the project's existing vocabulary. No blocking issues found.

📋 Summary

What was reviewed

Two edits to skills/rig/references/claude-workflow-conversion.md:

  1. Primitive mapping table: updated the call.json row to state schema accepts any s.* value, not just s.object, with an explicit note that Claude restricts to objects while rig does not.
  2. Behavior-differences section: added a Richer schema types bullet with the same information in prose form.

Positive highlights

  • Factually correct — verified against rig.ts: call.json is generic over Output extends Schema, which includes EnumSchema, ArraySchema, StringSchema, etc.
  • Terminology consistent with the rest of the docs (s.*, call.json, s.enum, s.array)
  • Information is discoverable in two places (table + behavior diffs), appropriate given users scan both
  • No duplication: the table gives the API mapping; the bullet gives the rationale and contrast
  • Tight, minimal change — no stale references introduced

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · sonnet46 20.2 AIC · ⌖ 2.62 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