Mandatory best practices and gold standards for Kailash SDK development including absolute imports, parameter passing, error handling, testing policies (NO MOCKING in Tiers 2-3), workflow design,...
These are required patterns that prevent bugs, ensure consistency, and maintain code quality.
Use gold-standards when asking about best practices, standards, gold standards, mandatory rules, required patterns, absolute imports, testing policy, error handling standards, security best practices, documentation standards, or workflow design standards. Covers absolute imports, parameter passing, error handling, Tier 2/3 testing with real infrastructure (NO mocking per rules/testing.md), workflow design, custom node development, security, documentation, and test creation.
from kailash.workflow.builder import WorkflowBuilder (not from ..workflow import builder)workflow.add_connection(source_id, source_param, target_id, target_param)results["node_id"]["result"] (not results["node_id"].result)noUnusedLocals instead of deleting itreadonly __filterShape?: TFilters tagged @phantom — not dead code, do not clean it upexecute(...) pattern that round-trips from workflow → node → engine → registry. See skill 34-kailash-ml for the exact contract. Release PRs block on this tier independently of unit/integration status.finally.build() before execute, string-based node API, single responsibilityAll workflow patterns follow the canonical 4-parameter pattern from /01-core-sdk.
| Standard | Correct | Wrong |
|---|---|---|
| Imports | from kailash.workflow.builder import WorkflowBuilder |
from ..workflow.builder import WorkflowBuilder |
| Connections | workflow.add_connection("n1", "result", "n2", "input_data") |
workflow.add_connection("n1", "n2") |
| Execution | runtime.execute(workflow.build()) |
runtime.execute(workflow) |
| Results | results["node_id"]["result"] |
results["node_id"].result |
| Secrets | os.environ["API_KEY"] |
api_key = "sk-..." |
| Testing | Real DB in Tier 2-3 | Mock(spec=DataFlow) in Tier 2-3 |
| Errors | except WorkflowExecutionError as e: logger.error(...) |
except: pass |
| Development | Write test first, then implement | Implement first, add tests later |
.build() called before executegold-standards-validator - Automated compliance checkingpattern-expert - Pattern validationtesting-specialist - Testing compliance