# Anthropic Just Dropped the Update Everyone's Been Waiting For (Claude Code Workflows)

**Sursa:** https://youtu.be/c0gVowvMR-g?si=V88cMDg4GGrkXWIZ
**Data:** 2026-05-21
**Durata:** 15:10
**Tags:** @work #claude-code #workflows #multi-agent #orchestration #productivity

---

## TL;DR

Claude Code a primit o funcție nouă (neoficial anunțată): **Workflows** — orchestrare deterministă multi-agent prin fișiere JavaScript. Rezolvă problema "token tax" și "context bloat" din abordarea clasică cu orchestrator LLM. Activare: `CLAUDE_CODE_WORKFLOWS=1 claude`

---

## Problema pe care o rezolvă

**Abordarea veche (orchestrator LLM):**
- Sub-agent execută task → rezultat intră în context window principal → se pasează la sub-agentul următor
- Token tax: rezultatele circulă inutil prin orchestrator (nu direct agent→agent)
- Orchestratorul devine din ce în ce mai "sloppy" pe măsură ce contextul se umple
- Conditionale devin unreliable (orchestratorul "uită")
- Zero vizibilitate în timp real la ce se întâmplă

**Soluția Workflows:**
- Orchestratorul NU mai e un model — e **cod JavaScript**
- Rezultatele se pasează direct agent→agent, fără a intra în contextul principal
- Poți rula 20-30-100 sub-agenți fără să crești contextul orchestratorului
- Retry automat per sub-agent (3 retries)
- Vizibilitate completă: `/workflows` în CLI, live progress, poți pause/resume

---

## Cum funcționează

**Activare:**
```bash
CLAUDE_CODE_WORKFLOWS=1 claude
```

**Structura fișierului:** `.claude/workflows/<name>.js`

```javascript
// META
export const meta = {
  name: "Triage Sentry Issues",
  description: "...",
  phases: ["load", "fix", "verify"]
};

// SCHEMA (output structurat per agent)
const issuesSchema = { issue_id, title, user_count };
const verdictSchema = { fixed, notes };

// ARGUMENTE (cu default)
const { minUsers = 20 } = args;

// FAZE
const issues = await agent({
  prompt: "Use Sentry MCP to list unresolved issues...",
  schema: issuesSchema
});

// JavaScript pur pentru filtrare/conditionale
const bigIssues = issues.filter(i => i.user_count > minUsers);
if (bigIssues.length === 0) return { fixed: "No issues above threshold" };

// PIPELINE (streaming: următorul stage pornește imediat, nu așteaptă batch)
await pipeline(bigIssues, [
  async (issue) => agent({ prompt: `Fix issue ${issue.id}: ${issue.title}` }),
  async (fix) => agent({ prompt: `Verify fix for ${fix.issue_id}` })
]);
```

---

## Toolkit disponibil

| Primitiv | Descriere |
|----------|-----------|
| `agent({})` | Un sub-agent nou (fresh context) per apel |
| `parallel([])` | Batch de agenți în paralel, așteaptă toți |
| `pipeline(items, stages)` | Streaming: stage următor pornește imediat când un item finalizează |
| `schema` | Returnează output structurat (JSON) dintr-un agent |
| `phaseLog(msg)` | Log vizibil live în CLI |
| `args` | Argumente pasate la pornire |
| `budgetRemaining` | Tokens rămași — pentru while loops cu buget |

**Budget control:**
```javascript
while (budgetRemaining > 50_000) {
  await agent({ prompt: "Find and fix one bug..." });
}
```

---

## Exemple de use cases

1. **Triage Sentry** — încarcă issues, filtrează după user count, fix + verify în paralel
2. **Dead code sweep** — loop de 8 runde: find unused → remove → repeat până nu mai găsește
3. **Personalized outreach** — încarcă leads CSV → research cu model ieftin (fallback scump dacă nu găsește) → draft mesaje personalizate → salvează output
4. **Issue backlog loop** — preia issues GitHub, fix + review adversarial + move on (echivalent Ralph loop, dar deterministic)

---

## Când să folosești workflow vs. task ad-hoc

**Workflow:** task repetabil (faci zilnic), fan-out pe conditionale/loops, task lung care poate eșua pe la mijloc (auto-resumable)

**Ad-hoc (claude normal):** task one-off, nu merită overhead-ul unui fișier JS

---

## Quote-uri

> "Instead of a model passing information back and forth between sub-agents and incurring a token tax every single time... what if we just had a workflow file, some kind of code?"

> "The orchestrator is now code instead."

> "I would suggest getting Claude Code to look through your previous sessions, identify any opportunities for making workflows and make workflows around them."

---

## Idei aplicabile pentru Echo Core / Ralph

- [ ] **Ralph ca Workflow** — înlocuiește `ralph.sh` bash loop cu un workflow Claude nativ: load stories din `prd.json` → pipeline(stories, [implement, review, verify]) @work
- [ ] **Triage workflow** — heartbeat care procesează emails/calendar poate deveni workflow: load → categorize → act per categorie @work
- [ ] **dead-code-sweep workflow** — util pentru curățenie periodică în `dashboard/handlers/` @work
- [ ] Skill `workflow-creator` descărcat din GitHub-ul autorului pentru a genera automat fișiere workflow @work

