Feature: cross-project workflow rules (status sync between linked issues) #235
ahmadoqsrawi
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Problem
Many teams run two or more linked projects where a status change on one side implies a status change on another. For example: a Marketing project tracks a campaign through Pitch -> Approved -> Running -> Reported, and a parallel Creative project tracks the asset for that campaign through Requested -> In Progress -> Delivered -> Approved -> Archived. The team wants: when the campaign moves to Running, the creative becomes In Progress; when the creative is Delivered, the campaign moves back to Review on the marketing side. Any pair of projects with a handoff shape has this need (QA pipeline linked to a Dev backlog, Procurement linked to Vendor Onboarding, Content Calendar linked to a Design queue, etc.).
Today the only paths are:
Both are fragile and project-specific.
Ask
A first-class workflow rule that lives on a Project (or on a ProjectType, inherited by all Projects of that type) and declares the status mapping to a counterpart issue in another Project. The server enforces it on every status Tx.
Suggested data model
A new domain class under
trackeror a reusableworkflowplugin:Enforcement lives in a Tx middleware/hook on IssueStatus changes:
TxUpdateDoc(Issue, { status }), resolve the linked issue vialinkKind+ the rule'slinkedProject.mapForward[newStatus](ormapBackwardif the rule fires on the counterpart side).category rankonIssueStatus(UnStarted=0, ToDo=1, Active=2, Won=3, Lost=99) and refuse regressions unless the (currentStatus, targetStatus) pair is inallowedLoops.TxUpdateDocon the counterpart issue withstatus = target. Tag the Tx so a listener on the counterpart does NOT echo back (loop prevention).UI
In a Project's settings, a new tab Workflow rules. For each rule:
Behaviour expectations
archived: trueon the WorkflowRule doc) without being deleted, so teams can snapshot a mapping before iterating.allowedLoopsmeans a Done issue cannot be dragged back to Todo by accident; a stray click on an older issue is a no-op if the rule denies the move.Why native, not integration
The link primitive is already in Huly (
attachedTo + attachedToClasson Issue). This proposal adds the policy layer that server-enforces the handoff, instead of each team re-implementing it per-project. Enables richer sub-issue hierarchies to actually drive workflow, not just visual grouping.All reactions