Deterministic behavior, state machines, artifact management, and meta programming for your coding agent