Rensei docs
Nodes

Trigger Nodes

15 trigger nodes including GitHub, Linear, and donmai.

Trigger nodes are the entry points of every workflow. Exactly one trigger appears at the root of each workflow; it receives an inbound event, normalizes it into a typed NormalizedEvent envelope, and emits that envelope to downstream nodes via its output port. The event type on each trigger determines which CloudEvent the workflow router matches against.

Trigger outputSchema is contractually tested per-trigger in backend.test.ts (WEFT M2 contract) - the shape you see documented here is enforced at test time, not just by convention.

GitHub triggers

github.push

Fires when a push is made to any branch (or a filtered branch set) in a connected GitHub repository.

Output fields

FieldTypeDescription
refstringFull git ref (e.g. refs/heads/main)
beforestringPrevious HEAD SHA
afterstringNew HEAD SHA
repository.fullNamestringowner/repo
pusher.namestringGitHub username of the pusher
commitsarrayArray of commit objects with id, message, author

Filter config

FieldTypeDescription
branchesstring[]Only match pushes to these branches
ignoreBranchesstring[]Skip pushes to these branches

github.pr.opened

Fires when a pull request is opened in a connected repository.

Output fields

FieldTypeDescription
numbernumberPR number
titlestringPR title
bodystringPR description
headRefstringHead branch name
baseRefstringBase branch name
htmlUrlstringGitHub PR URL
author.loginstringPR author
repository.fullNamestringowner/repo
draftbooleanWhether the PR is a draft

github.pr.merged

Fires when a pull request is merged.

Output fields - same shape as github.pr.opened plus mergedAt (ISO timestamp) and mergedBy.login.


github.pr.review_submitted

Fires when a pull request review is submitted (approved, changes requested, or commented).

Output fields

FieldTypeDescription
pullRequestNumbernumberPR number
reviewStatestringapproved, changes_requested, or commented
reviewer.loginstringReviewer's GitHub login
bodystringReview comment body
htmlUrlstringReview URL

github.check_run.completed

Fires when a GitHub Actions check run completes.

Output fields

FieldTypeDescription
namestringCheck run name
statusstringcompleted
conclusionstringsuccess, failure, neutral, cancelled, skipped, timed_out, or action_required
headShastringCommit SHA
htmlUrlstringCheck run URL
pullRequestNumbersnumber[]Associated PR numbers

github_issues.issue.assigned

Fires when a GitHub Issue is assigned to a user. Requires the GitHub Issues integration to be enabled for your organization.

Output fields

FieldTypeDescription
numbernumberIssue number
titlestringIssue title
bodystringIssue body
htmlUrlstringIssue URL
assignee.loginstringNewly assigned user
repository.fullNamestringowner/repo

github_issues.comment.created

Fires when a comment is created on a GitHub Issue.

Output fields

FieldTypeDescription
issueNumbernumberIssue number
bodystringComment body
author.loginstringComment author
htmlUrlstringComment URL

Linear triggers

linear.issue.assigned

Fires when a Linear issue is assigned (or reassigned) to a user.

Output fields

FieldTypeDescription
issueIdstringLinear issue UUID
issueIdentifierstringHuman-readable ID (e.g. REN-1234)
issueTitlestringIssue title
assigneeIdstringAssigned user UUID
assigneeNamestringAssigned user display name
teamIdstringLinear team UUID
projectIdstringLinear project UUID (if present)

linear.issue.status_changed

Fires when the status (state) of a Linear issue changes.

Output fields

FieldTypeDescription
issueIdstringLinear issue UUID
issueIdentifierstringHuman-readable ID
fromStatestringPrevious state name
toStatestringNew state name
teamIdstringLinear team UUID

linear.issue.labeled

Fires when a label is added to a Linear issue.

Output fields

FieldTypeDescription
issueIdstringLinear issue UUID
issueIdentifierstringHuman-readable ID
labelIdstringAdded label UUID
labelNamestringAdded label name

linear.comment.created

Fires when a comment is created on a Linear issue.

Output fields

FieldTypeDescription
issueIdstringLinear issue UUID
issueIdentifierstringHuman-readable ID
commentBodystringComment text
authorIdstringComment author UUID
authorNamestringComment author display name

linear.agent_session.created

Fires when Linear emits an AgentSessionEvent with action=created. This is the primary entry point for SDLC automation - a user @-mentions your agent or delegates work from the Linear UI.

Output fields

FieldTypeRequired
sessionIdstringyes
issueIdstringyes
issueIdentifierstringyes
issueTitlestringyes
issueStatusstringyes
commentBodystringyes
mentionedUserIdstringyes
promptContextstringyes
matchedPrefixstringno
projectstringno
plainBodystringno

matchedPrefix is populated when a bodyStartsWith filter matches. plainBody is commentBody with all @mention syntax stripped.

Filter config

FieldTypeDescription
bodyStartsWithstring[]Match sessions where the triggering comment starts with one of these prefixes. Populates matchedPrefix. Example: ["Research", "Backlog"]
mentionsUserstringOnly match when a specific Linear user is @mentioned. Accepts username, display name, or UUID.
projectstringOnly match issues in this Linear project.

CloudEvent type: com.linear.AgentSessionEvent.created


linear.agent_session.prompted

Fires when Linear emits an AgentSessionEvent with action=prompted - typically an @mention in an existing session thread (the "continue" signal).

If no workflow subscription matches a linear.agent_session.prompted event, it is silently dropped as af.skip. This is by design: @mentions in threads where no matching workflow is subscribed produce no side effects rather than an error. Monitor your subscription configuration if you expect prompted events to route.

Output fields - same shape as linear.agent_session.created. The promptContext field carries the new continuation prompt from Linear.


linear.agent_session.updated

Fires when a Linear AgentSession is updated (state transition or metadata change). Useful for reacting to session state changes, such as when a session moves to complete.

Output fields - same shape as linear.agent_session.created, plus previousState and newState string fields reflecting the AgentSession state transition.

Donmai trigger

agent.exit

Fires when a donmai agent session completes (exits). This is the re-entry point for workflows that dispatch an agent and then need to continue when that agent finishes.

Unlike other trigger nodes, agent.exit exposes two output ports that route based on the session outcome:

Output portWhen it fires
successSession completed successfully (com.agentfactory.session.completed)
failSession failed or crashed (com.agentfactory.session.failed)

success port fields

FieldTypeDescription
sessionIdstringCompleted session UUID
profilestringAgent profile (e.g. "developer")
issueIdstringLinear issue ID this session targeted
statusstringFinal session status string
branchNamestringBranch name produced by the session
summarystringAgent-provided completion summary
costUsdnumberTotal session cost in USD

fail port fields

FieldTypeDescription
sessionIdstringSession UUID
profilestringAgent profile
issueIdstringLinear issue ID
statusstringFinal session status string
errorMessagestringFailure error message
errorClassificationstringFailure classification (e.g. "timeout", "crash")
retryAttemptnumberRetry attempt counter

agent.exit is wired automatically by the SDLC templates at each stage boundary. In custom workflows, pair it with agent.dispatch or agent.invoke: the dispatcher fires and the agent.exit trigger re-enters the workflow when the session completes.

On this page