2026-05-11 02:15:47 +02:00
{
"claim_rules" : {
"auditor" : [],
"cell_pm" : [
"pending"
],
"ceo" : [],
"developer" : [
"needs_revision" ,
"pending"
],
"documenter" : [
"awaiting_documentation" ,
"pending"
],
"head_marketing" : [],
"main_pm" : [
"pending"
],
"product_owner" : [],
"qa" : [
"awaiting_qa"
]
},
"intents" : [
{
"allowed_roles" : [
"documenter"
],
"composes" : [],
"description" : "Claim awaiting_documentation. Returns evidence inline." ,
"name" : "claim_doc_task" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"qa"
],
"composes" : [],
"description" : "Claim a task in awaiting_qa for review. Returns evidence inline." ,
"name" : "claim_review" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"cell_pm" ,
"main_pm"
],
"composes" : [
"complete"
],
"description" : "Cell PM merges leaf PR + transitions to completed; Main PM merges root PR + escalates to CEO." ,
"name" : "complete" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : [
"pr_merge"
]
},
{
"allowed_roles" : [
"cell_pm" ,
"main_pm"
],
"composes" : [
"create_subtask"
],
2026-06-03 06:35:03 +02:00
"description" : "Create a subtask under the current task. Validates the delegation chain (main_pm->cell_pm; cell_pm->its team's devs) and the assignee-vs-task_type rule (Cell PMs get planning-typed tasks; devs get code/research, UX devs also design). documentation is NOT delegatable \u2014 the lifecycle auto-creates the doc phase after the code subtask passes QA." ,
2026-05-11 02:15:47 +02:00
"name" : "delegate" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"head_marketing" ,
"main_pm" ,
"product_owner"
],
"composes" : [
"escalate_to_ceo"
],
"description" : "Escalate to CEO with reason. Transitions to awaiting_ceo_approval." ,
"name" : "escalate_to_ceo" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"cell_pm" ,
"main_pm"
],
"composes" : [],
"description" : "Escalate to your role's escalation_target." ,
"name" : "escalate_up" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"qa"
],
"composes" : [
"qa_fail"
],
"description" : "Fail QA with concrete issues. Transitions to needs_revision." ,
"name" : "fail_review" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"cell_pm" ,
"developer" ,
"documenter" ,
"main_pm" ,
"qa"
],
"composes" : [],
"description" : "Return your most-actionable task or signal idle." ,
"name" : "give_me_work" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"developer" ,
"documenter" ,
"qa"
],
"composes" : [
"block"
],
"description" : "Escalate to PM. Logs a struggle journal entry." ,
"name" : "i_am_blocked" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"developer"
],
"composes" : [
"submit_verification" ,
"submit_qa"
],
"description" : "Submit work for QA. Auto-runs in_progress->verifying then verifying->awaiting_qa. Strict - PR must be open (call open_pr first) and >=1 commit." ,
"name" : "i_am_done" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"auditor" ,
"cell_pm" ,
"developer" ,
"documenter" ,
"head_marketing" ,
"main_pm" ,
"product_owner" ,
"qa"
],
"composes" : [],
"description" : "Signal you have no active work. PMs auto-pause owned in_progress tasks." ,
"name" : "i_am_idle" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"documenter"
],
"composes" : [
"docs_complete"
],
"description" : "Signal docs complete. Transitions to awaiting_pm_review." ,
"name" : "i_documented" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"cell_pm" ,
"main_pm"
],
"composes" : [
"claim" ,
"set_plan" ,
"start"
],
"description" : "PM mirror of i_will_work_on for parent tasks. Claim, plan, transition to in_progress; from there delegate subtasks." ,
"name" : "i_will_plan" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"developer"
],
"composes" : [
"claim" ,
"set_plan" ,
"start"
],
"description" : "Claim a task, set the plan, and transition to in_progress. Atomic - preconditions checked before any state mutation." ,
"name" : "i_will_work_on" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"developer"
],
"composes" : [],
"description" : "Push the branch and open a PR. Atomic - preconditions (assignee, >=1 commit, no prior PR) checked BEFORE any git operation. After success, call i_am_done." ,
"name" : "open_pr" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : [
"push_branch" ,
"create_pr"
]
},
{
"allowed_roles" : [
"qa"
],
"composes" : [
"qa_pass"
],
"description" : "Pass QA. Transitions awaiting_qa -> awaiting_documentation." ,
"name" : "pass_review" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"cell_pm" ,
"developer" ,
"documenter" ,
"main_pm" ,
"qa"
],
"composes" : [
"resume"
],
"description" : "Resume a paused task you own. paused -> in_progress." ,
"name" : "resume" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"cell_pm"
],
"composes" : [
"submit_pm_review"
],
2026-05-23 05:16:56 +02:00
"description" : "Cell PM opens the cell\u2192root PR and moves the cell task to awaiting_pm_review. The same Cell PM then completes it." ,
2026-05-11 02:15:47 +02:00
"name" : "submit_up" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [
2026-05-11 02:15:47 +02:00
"create_pr"
2026-05-23 02:32:41 +02:00
],
"side_effects" : []
2026-05-11 02:15:47 +02:00
},
{
"allowed_roles" : [
"auditor" ,
"cell_pm" ,
"head_marketing" ,
"main_pm" ,
"product_owner"
],
"composes" : [],
"description" : "List actionable tasks in your scope." ,
"name" : "triage" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"main_pm"
],
"composes" : [],
"description" : "List actionable tasks across all teams (Main PM only)." ,
"name" : "triage_all" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"cell_pm" ,
"main_pm"
],
"composes" : [
"unblock"
],
"description" : "PM unblocks a blocked task; restores pre-block state." ,
"name" : "unblock" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
},
{
"allowed_roles" : [
"cell_pm" ,
"developer" ,
"documenter" ,
"main_pm" ,
"qa"
],
"composes" : [],
"description" : "Voluntarily release a claim back to pending. The work-in-progress branch is preserved." ,
"name" : "unclaim" ,
2026-05-23 02:32:41 +02:00
"pre_side_effects" : [],
2026-05-11 02:15:47 +02:00
"side_effects" : []
}
],
"transitions" : [
{
"action" : "cancel" ,
"roles" : [
"cell_pm" ,
"ceo" ,
"main_pm"
],
"source" : "awaiting_ceo_approval" ,
"target" : "cancelled"
},
{
"action" : "ceo_approve" ,
"roles" : [
"ceo"
],
"source" : "awaiting_ceo_approval" ,
"target" : "completed"
},
{
"action" : "ceo_reject" ,
"roles" : [
"ceo"
],
"source" : "awaiting_ceo_approval" ,
"target" : "needs_revision"
},
{
"action" : "docs_complete" ,
"roles" : [
"documenter"
],
"source" : "awaiting_documentation" ,
"target" : "awaiting_pm_review"
},
{
"action" : "cancel" ,
"roles" : [
"cell_pm" ,
"ceo" ,
"main_pm"
],
"source" : "awaiting_documentation" ,
"target" : "cancelled"
},
{
"action" : "claim" ,
"roles" : [
"documenter"
],
"source" : "awaiting_documentation" ,
"target" : "claimed"
},
{
"action" : "escalate_to_ceo" ,
"roles" : [
"head_marketing" ,
"main_pm" ,
"product_owner"
],
"source" : "awaiting_pm_review" ,
"target" : "awaiting_ceo_approval"
},
{
"action" : "cancel" ,
"roles" : [
"cell_pm" ,
"ceo" ,
"main_pm"
],
"source" : "awaiting_pm_review" ,
"target" : "cancelled"
},
{
"action" : "complete" ,
"roles" : [
"cell_pm" ,
"main_pm"
],
"source" : "awaiting_pm_review" ,
"target" : "completed"
},
{
"action" : "qa_pass" ,
"roles" : [
"qa"
],
"source" : "awaiting_qa" ,
"target" : "awaiting_documentation"
},
{
"action" : "cancel" ,
"roles" : [
"cell_pm" ,
"ceo" ,
"main_pm"
],
"source" : "awaiting_qa" ,
"target" : "cancelled"
},
{
"action" : "claim" ,
"roles" : [
"qa"
],
"source" : "awaiting_qa" ,
"target" : "claimed"
},
{
"action" : "qa_fail" ,
"roles" : [
"qa"
],
"source" : "awaiting_qa" ,
"target" : "needs_revision"
},
{
"action" : "cancel" ,
"roles" : [
"cell_pm" ,
"ceo" ,
"main_pm"
],
"source" : "backlog" ,
"target" : "cancelled"
},
{
"action" : "activate" ,
"roles" : null ,
"source" : "backlog" ,
"target" : "pending"
},
{
"action" : "cancel" ,
"roles" : [
"cell_pm" ,
"ceo" ,
"main_pm"
],
"source" : "blocked" ,
"target" : "cancelled"
},
{
"action" : "unblock" ,
"roles" : null ,
"source" : "blocked" ,
"target" : "in_progress"
},
2026-06-04 02:01:09 +02:00
{
"action" : "unblock" ,
"roles" : null ,
"source" : "blocked" ,
"target" : "pending"
},
2026-05-11 02:15:47 +02:00
{
"action" : "cancel" ,
"roles" : [
"cell_pm" ,
"ceo" ,
"main_pm"
],
"source" : "claimed" ,
"target" : "cancelled"
},
{
"action" : "start" ,
"roles" : null ,
"source" : "claimed" ,
"target" : "in_progress"
},
{
"action" : "submit_pm_review" ,
"roles" : null ,
"source" : "in_progress" ,
"target" : "awaiting_pm_review"
},
{
"action" : "block" ,
"roles" : null ,
"source" : "in_progress" ,
"target" : "blocked"
},
{
"action" : "cancel" ,
"roles" : [
"cell_pm" ,
"ceo" ,
"main_pm"
],
"source" : "in_progress" ,
"target" : "cancelled"
},
{
"action" : "pause" ,
"roles" : null ,
"source" : "in_progress" ,
"target" : "paused"
},
{
"action" : "submit_verification" ,
"roles" : null ,
"source" : "in_progress" ,
"target" : "verifying"
},
{
"action" : "cancel" ,
"roles" : [
"cell_pm" ,
"ceo" ,
"main_pm"
],
"source" : "needs_revision" ,
"target" : "cancelled"
},
{
"action" : "claim" ,
"roles" : null ,
"source" : "needs_revision" ,
"target" : "claimed"
},
{
"action" : "cancel" ,
"roles" : [
"cell_pm" ,
"ceo" ,
"main_pm"
],
"source" : "paused" ,
"target" : "cancelled"
},
{
"action" : "resume" ,
"roles" : null ,
"source" : "paused" ,
"target" : "in_progress"
},
{
"action" : "cancel" ,
"roles" : [
"cell_pm" ,
"ceo" ,
"main_pm"
],
"source" : "pending" ,
"target" : "cancelled"
},
{
"action" : "claim" ,
"roles" : null ,
"source" : "pending" ,
"target" : "claimed"
},
{
"action" : "submit_qa" ,
"roles" : null ,
"source" : "verifying" ,
"target" : "awaiting_qa"
},
{
"action" : "cancel" ,
"roles" : [
"cell_pm" ,
"ceo" ,
"main_pm"
],
"source" : "verifying" ,
"target" : "cancelled"
}
]
}