Jira Is Turing-Complete
Recorded: May 25, 2026, 5:58 a.m.
| Original | Summarized |
Jira IS Turing-Complete Nicolas Seriot Jira is Turing-Complete Building a Minsky Machine in Atlassian Automation INC r; goto S Or, in plain English: increment register R, then goto some state S A Minsky program that adds register A into register B looks like: Minsky proved this model Turing-complete (1967). Minsky Machine Register A Register B Program Counter Dispatch Table Clock The Epic's status encodes the current instruction. Trigger: Epic status changed to TODO. 3. Create Rule for DEV Trigger: Epic status changed to DEV. Both rules have "Allow rule to trigger other rules" enabled. 4. Init Registers Recorded on a real *.atlassian.net instance. QA: DEV: Initial state A=1, B=1, C=0. The sequence 1, 1, 2, 3, 5, 8, 13, … appears in B (Task count). |
Engineering folklore suggests that Jira, Atlassian's project-tracking tool, possesses Turing-complete capabilities, a claim supported by a formal reduction from the Minsky Machine model. This article provides a proof demonstrating this computational power by mapping the architecture of the Minsky machine onto the features of Jira's automation language. The Minsky machine is defined by two unbounded counters and a finite set of instructions involving incrementing or decrementing registers, along with conditional branching based on register values. The proof establishes a mapping between these abstract computational elements and Jira components. The mapping involves assigning the Minsky registers to Jira entities: Register A corresponds to the count of linked issues of type Bug, Register B corresponds to the count of linked issues of type Task, the Program Counter is encoded by the status of a single Epic issue, the Dispatch Table is implemented via Jira Automation rules, and the Clock is represented by automation-triggered transitions or external re-triggering. The Epic's status serves to encode the current instruction state, and the automation rules inspect the linked issue counts to determine the next state. The basic operations of increment and decrement are realized through the creation and deletion of linked issues, while conditional branching is managed using JQL-conditioned rules. A minimal working implementation for addition is demonstrated by setting up a workflow with states like BACKLOG, TODO, DEV, and PROD, and using automation rules to simulate the Minsky operations. For instance, operations like decrementing a counter depend on the existence of linked issues, and branching is controlled by these conditions. The demonstration involves creating rules that trigger issue deletion or creation based on the counts of linked Bugs and Tasks, thereby executing the logical flow required by the machine. This process shows how Jira's automation language can encode the Minsky machine's principles. Further complexity is introduced by showing that Jira's automation language can handle operations beyond simple addition, such as generating the Fibonacci sequence. This is achieved by utilizing the system’s ability to instantly change issue types, which the authors argue can be expressed through the combination of increment and decrement operations. By defining three states (TODO, QA, DEV) and three registers (Bug, Task, Story), the system can simulate the sequence generation. The transitions between these states are governed by checks on the linked issue counts, enabling the simulation of the recursive nature of the sequence. Although the system employs a chain-depth cap, the structure of the reduction remains valid, as the necessary control flow is supplied externally, affirming the Turing-completeness of Jira. In conclusion, because Jira’s automation language allows for unbounded issue creation and rule execution, it can encode the necessary memory and control flow mechanisms of a Turing-complete model. Due to this capability, Jira is considered Turing-complete under standard computational conventions, implying that complex Jira automation sequences are functionally equivalent to programs. |