| name | developing-cast |
| description | Implements LangGraph cast components following systematic workflow (state, deps, nodes, conditions, graph). Use when implementing cast, building nodes/agents/tools, need LangGraph patterns (memory, retry, guardrails, vector stores, node timeouts, error handlers, DeltaChannel, graceful shutdown), or ask "implement cast", "build graph", "add node". |
| version | 2026.05.27 |
| author | Proact0 |
| allowed-tools | ["Bash(uv sync *)","Bash(uv add --dev *)","Bash(uv add --group *)","Bash(uv add --package *)","Bash(uv remove --package *)","Read","Write","Edit","AskUserQuestion"] |
Developing Backend's Cast
Implement LangGraph casts following Backend Act patterns.
When to Use
- Building nodes, agents, tools, or graphs
- Need LangGraph implementation patterns
- Have architecture specs to implement
When NOT to Use
- Architecture design →
architecting-act
- DeepAgent harness (create_deep_agent, backends, subagents) →
developing-deepagent
- Project / cast scaffolding → run
uv run act new (project) or uv run act cast (new cast) directly
- Testing →
testing-cast
Implementation Workflow
Step 1: Understand CLAUDE.md
Act = Project, Cast = Graph/Workflow in the project
If CLAUDE.md exists:
- Read
/CLAUDE.md → Act overview, find target cast
- Read
/casts/{cast_slug}/CLAUDE.md → Architecture diagram, node specs
- Proceed to Step 2
If CLAUDE.md not found:
AskUserQuestion Format:
{
"question": "CLAUDE.md not found. Create architecture first?",
"header": "Architecture",
"multiSelect": false,
"options": [
{"label": "Yes", "description": "Switch to architecting-act skill"},
{"label": "No", "description": "Proceed without architecture specs"}
]
}
- Yes → use
architecting-act skill first
- No → proceed to Step 2
Step 2: Implementation
Implement in order: state → dependency modules → nodes → conditions → graph
- Use Component Reference tables below for each component type
1. State (state.py) # Foundation
↓
2. Dependency modules # agents, models, tools, prompts, middlewares, utils (if needed)
↓
3. Nodes (nodes.py) # Business logic
↓
4. Conditions (conditions.py) # Route Functions (if needed)
↓
5. Graph (graph.py) # Assembly
Optional Step 3: Create required environment variables (if needed)
Update .env.example (project root):
OPENAI_API_KEY=your_key
ANTHROPIC_API_KEY=your_key
Optional Step 4: Install dependency packages (if needed)
The uv workspace exposes each cast under casts/* as a member; install per-cast dependencies into the cast's own pyproject.toml:
uv add --package {{ cookiecutter.cast_slug }} <package-name>
uv add --package {{ cookiecutter.act_slug }} <package-name>
Component Reference
Core Components
Prompts & Messages
Models & Agents
Tools
Memory
Middleware - Reliability
Middleware - Safety & Control
Middleware - Tool Management
Middleware - Context
Middleware - Provider-Specific
Integrations
Verification