mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
559 lines
12 KiB
JSON
559 lines
12 KiB
JSON
{
|
|||
|
|
"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",
|
||
|
|
"side_effects": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"allowed_roles": [
|
||
|
|
"qa"
|
||
|
|
],
|
||
|
|
"composes": [],
|
||
|
|
"description": "Claim a task in awaiting_qa for review. Returns evidence inline.",
|
||
|
|
"name": "claim_review",
|
||
|
|
"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",
|
||
|
|
"side_effects": [
|
||
|
|
"pr_merge"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"allowed_roles": [
|
||
|
|
"cell_pm",
|
||
|
|
"main_pm"
|
||
|
|
],
|
||
|
|
"composes": [
|
||
|
|
"create_subtask"
|
||
|
|
],
|
||
|
|
"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/documentation).",
|
||
|
|
"name": "delegate",
|
||
|
|
"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",
|
||
|
|
"side_effects": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"allowed_roles": [
|
||
|
|
"cell_pm",
|
||
|
|
"main_pm"
|
||
|
|
],
|
||
|
|
"composes": [],
|
||
|
|
"description": "Escalate to your role's escalation_target.",
|
||
|
|
"name": "escalate_up",
|
||
|
|
"side_effects": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"allowed_roles": [
|
||
|
|
"qa"
|
||
|
|
],
|
||
|
|
"composes": [
|
||
|
|
"qa_fail"
|
||
|
|
],
|
||
|
|
"description": "Fail QA with concrete issues. Transitions to needs_revision.",
|
||
|
|
"name": "fail_review",
|
||
|
|
"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",
|
||
|
|
"side_effects": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"allowed_roles": [
|
||
|
|
"developer",
|
||
|
|
"documenter",
|
||
|
|
"qa"
|
||
|
|
],
|
||
|
|
"composes": [
|
||
|
|
"block"
|
||
|
|
],
|
||
|
|
"description": "Escalate to PM. Logs a struggle journal entry.",
|
||
|
|
"name": "i_am_blocked",
|
||
|
|
"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",
|
||
|
|
"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",
|
||
|
|
"side_effects": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"allowed_roles": [
|
||
|
|
"documenter"
|
||
|
|
],
|
||
|
|
"composes": [
|
||
|
|
"docs_complete"
|
||
|
|
],
|
||
|
|
"description": "Signal docs complete. Transitions to awaiting_pm_review.",
|
||
|
|
"name": "i_documented",
|
||
|
|
"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",
|
||
|
|
"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",
|
||
|
|
"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",
|
||
|
|
"side_effects": [
|
||
|
|
"push_branch",
|
||
|
|
"create_pr"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"allowed_roles": [
|
||
|
|
"qa"
|
||
|
|
],
|
||
|
|
"composes": [
|
||
|
|
"qa_pass"
|
||
|
|
],
|
||
|
|
"description": "Pass QA. Transitions awaiting_qa -> awaiting_documentation.",
|
||
|
|
"name": "pass_review",
|
||
|
|
"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",
|
||
|
|
"side_effects": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"allowed_roles": [
|
||
|
|
"cell_pm"
|
||
|
|
],
|
||
|
|
"composes": [
|
||
|
|
"submit_pm_review"
|
||
|
|
],
|
||
|
|
"description": "Cell PM bubbles a finished cell-scope task up to Main PM.",
|
||
|
|
"name": "submit_up",
|
||
|
|
"side_effects": [
|
||
|
|
"create_pr"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"allowed_roles": [
|
||
|
|
"auditor",
|
||
|
|
"cell_pm",
|
||
|
|
"head_marketing",
|
||
|
|
"main_pm",
|
||
|
|
"product_owner"
|
||
|
|
],
|
||
|
|
"composes": [],
|
||
|
|
"description": "List actionable tasks in your scope.",
|
||
|
|
"name": "triage",
|
||
|
|
"side_effects": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"allowed_roles": [
|
||
|
|
"main_pm"
|
||
|
|
],
|
||
|
|
"composes": [],
|
||
|
|
"description": "List actionable tasks across all teams (Main PM only).",
|
||
|
|
"name": "triage_all",
|
||
|
|
"side_effects": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"allowed_roles": [
|
||
|
|
"cell_pm",
|
||
|
|
"main_pm"
|
||
|
|
],
|
||
|
|
"composes": [
|
||
|
|
"unblock"
|
||
|
|
],
|
||
|
|
"description": "PM unblocks a blocked task; restores pre-block state.",
|
||
|
|
"name": "unblock",
|
||
|
|
"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",
|
||
|
|
"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"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"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"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|