Kailash Code Templates
code-templates
Production-ready code templates for Kailash SDK including basic workflows, cyclic workflows, custom nodes, MCP servers, and all three test tiers (unit, integration, end-to-end). Use when asking about 'template', 'example code', 'starter code', 'boilerplate', 'scaffold', 'workflow template', 'cust...
SKILL.md
Full skill instructions
Kailash Code Templates
Production-ready code templates and boilerplate for common Kailash development tasks.
Overview
Complete templates for:
- Basic workflows
- Cyclic workflows
- Custom node development
- MCP server creation
- Unit tests (Tier 1)
- Integration tests (Tier 2)
- End-to-end tests (Tier 3)
Reference Documentation
Workflow Templates
Basic Workflow
- template-workflow-basic - Standard workflow template
- WorkflowBuilder setup
- Node addition pattern
- Connection pattern
- Runtime execution
- Result access
- Error handling
Cyclic Workflow
- template-cyclic-workflow - Cyclic workflow template
- CycleNode setup
- Convergence checking
- State persistence
- Iteration limits
- Result aggregation
Custom Development Templates
Custom Node
- template-custom-node - Custom node template
- Node class structure
- Parameter definition
- Execute method implementation
- Input validation
- Output formatting
- Error handling
- Registration pattern
MCP Server
- template-mcp-server - MCP server template
- MCPServer initialization
- Tool registration
- Resource definition
- Transport configuration
- Authentication setup
- Progress reporting
Test Templates
Unit Tests (Tier 1)
- template-test-unit - Unit test template
- Test class structure
- Fixture setup
- Mock setup (allowed in Tier 1)
- Assertion patterns
- Teardown cleanup
- Fast execution pattern
Integration Tests (Tier 2)
- template-test-integration - Integration test template
- Real database setup
- Workflow execution testing
- NO MOCKING policy
- Real infrastructure fixtures
- Resource cleanup
- Result validation
End-to-End Tests (Tier 3)
- template-test-e2e - E2E test template
- Full system setup
- API testing pattern
- Real HTTP requests
- Complete user flows
- Multi-component testing
- Production-like environment
Template Usage
Quick Start Process
- Select Template: Choose relevant template for your task
- Copy Code: Copy template as starting point
- Customize: Adapt to your specific needs
- Test: Verify with real data
- Refine: Iterate based on results
Template Categories
Workflow Development:
template-workflow-basic→ Standard workflowstemplate-cyclic-workflow→ Iterative workflows
Custom Development:
template-custom-node→ New node typestemplate-mcp-server→ MCP integration
Testing:
template-test-unit→ Fast unit teststemplate-test-integration→ Real infrastructure teststemplate-test-e2e→ Complete system tests
Template Examples
Basic Workflow Template
from kailash.workflow.builder import WorkflowBuilder
from kailash.runtime.local import LocalRuntime
def create_workflow():
"""Create a basic workflow."""
workflow = WorkflowBuilder()
# Add nodes
workflow.add_node("PythonCodeNode", "node1", {
"code": "result = input_data * 2"
})
workflow.add_node("PythonCodeNode", "node2", {
"code": "result = input_data + 10"
})
# Add connections
workflow.add_connection("node1", "result", "node2", "input_data")
return workflow
# Execute
runtime = LocalRuntime()
results, run_id = runtime.execute(create_workflow().build())
print(results["node2"]["result"])
Custom Node Template
from kailash.nodes.base import BaseNode
class MyCustomNode(BaseNode):
"""Custom node implementation."""
def __init__(self, node_id: str, **params):
super().__init__(node_id)
self.my_param = params.get("my_param")
def execute(self, inputs: dict) -> dict:
"""Execute node logic."""
# Validate inputs
if "input_data" not in inputs:
raise ValueError("Missing input_data")
# Process
result = self.process(inputs["input_data"])
# Return output
return {"result": result}
def process(self, data):
"""Custom processing logic."""
return data * 2
Integration Test Template
import pytest
from kailash.workflow.builder import WorkflowBuilder
from kailash.runtime.local import LocalRuntime
from dataflow import DataFlow
@pytest.fixture
def db():
"""Real database for testing."""
db = DataFlow("postgresql://test:test@localhost:5433/test_db")
db.create_tables()
yield db
db.drop_tables()
@pytest.fixture
def runtime():
"""Real runtime."""
return LocalRuntime()
def test_workflow_execution(runtime):
"""Tier 2: Integration test with real execution."""
# Arrange
workflow = WorkflowBuilder()
workflow.add_node("PythonCodeNode", "calc", {
"code": "result = 2 + 2"
})
# Act
results, run_id = runtime.execute(workflow.build())
# Assert
assert results["calc"]["result"] == 4
assert run_id is not None
Best Practices
Using Templates
- ✅ Start with template, then customize
- ✅ Keep template structure
- ✅ Follow naming conventions
- ✅ Add comments for customization points
- ✅ Test template modifications
- ❌ NEVER skip error handling
- ❌ NEVER remove validation
- ❌ NEVER ignore resource cleanup
Template Customization
- Keep core structure intact
- Add custom logic in designated areas
- Maintain error handling patterns
- Preserve type hints
- Update docstrings
Testing Templates
- Test with real data
- Verify all code paths
- Check error handling
- Validate cleanup
- Performance test if needed
When to Use This Skill
Use this skill when you need:
- Starting point for new code
- Boilerplate for common tasks
- Reference implementation
- Best practice examples
- Quick scaffolding
- Test structure guidance
Template Selection Guide
| Task | Template | Why |
|---|---|---|
| New workflow | template-workflow-basic | Standard structure |
| Iterative logic | template-cyclic-workflow | Cycle pattern |
| Custom node | template-custom-node | Node structure |
| MCP integration | template-mcp-server | MCP setup |
| Fast tests | template-test-unit | Unit testing |
| Real infra tests | template-test-integration | Integration |
| Full system | template-test-e2e | End-to-end |
Related Skills
- 01-core-sdk - Core patterns
- 06-cheatsheets - Pattern examples
- 07-development-guides - Development guides
- 12-testing-strategies - Testing strategies
- 17-gold-standards - Best practices
Support
For template help, invoke:
pattern-expert- Pattern selectiontdd-implementer- Test-first developmentsdk-navigator- Find examples
