๐Ÿงฉ Dynamic Workflow Patterns โ€” milestone #157 bundle

3 issues, one PR ยท grounded in the 2 workflows actually run this session

#2234 patterns ref ยท #2233 model tiers ยท #2232 quarantine ยท don't-wrap honored

๐Ÿ“œ The 6 patterns โ†’ ork map (click)

patternork flowfixes failure mode

๐ŸŽš๏ธ Per-agent model tiers (#2233)

haiku
structural greps, file reads, classification, fan-out exploration
opus
synthesis, adversarial judgment, design, cross-cutting reasoning
inherit
everything between / when unsure โ€” omit model

Don't over-optimize: a wrong-tier cheap agent that misses a structural dependency costs more than the tokens it saved (the version-matrix verdict needed a careful read, not a cheap grep).

๐Ÿ›ก๏ธ Quarantine for untrusted input (#2232)

A new shared rule + pointers wired into the 3 skills that read GitHub/CI content.

skilluntrusted sourcereader extracts โ†’ actor does
ci-sentinelCI logs, PR titles/bodiesfailure class โ†’ proposes verdict (never auto-pushes)
fix-issueissue body, commentsrepro facts โ†’ writes fix from facts, not prose
review-prPR description, threadsstated intent โ†’ reviews the diff (the trusted artifact)

โš–๏ธ The reconciled tension

"don't wrap" (memory) vs "ship as Skills" (the article): reconciled โ€” bounded foreground work USES the Workflow tool directly; only genuinely large-N/adversarial/repeated flows ship as a template (not a verbatim script). Decision test: would a regular session finish it in 5 minutes? Then no workflow at all.

๐Ÿ“ฆ What lands

Reference: chain-patterns/references/dynamic-workflow-patterns.md ยท rule: shared/rules/untrusted-input-quarantine.md ยท milestone #157