II.
Workflow JSON
Structured · liveworkflow:krate-pr-lifecycle
Krate Pull Request Lifecycle json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "workflow:krate-pr-lifecycle",
"_kind": "Workflow",
"_file": "domain/products/krate.yaml",
"_cluster": "domain",
"attributes": {
"displayName": "Krate Pull Request Lifecycle",
"description": "The full lifecycle of a pull request within Krate's Kubernetes-native\nforge, from creation through merge.\n\nSteps:\n1. PR creation: A PullRequest aggregated API resource is created\n (via UI, kubectl, or git push with a create-pr flag). Krate\n syncs the underlying Git branches with Gitea.\n2. CI pipeline trigger: BranchProtection rules on the target branch\n trigger a Pipeline resource. PipelineRuns execute as Kubernetes\n Jobs — lint, test, build, security scan.\n3. Review assignment: Reviewers are assigned based on CODEOWNERS\n patterns or team routing rules. Reviewers submit PullRequestReview\n resources with approve/request-changes verdicts.\n4. Status conditions: The PR aggregates status from CI checks,\n review approvals, and policy evaluations into Kubernetes-style\n status conditions. The merge button is unlocked when all required\n conditions are True.\n5. Agent dispatch (optional): Reviewers or authors can dispatch an\n agent via /agent comment to address review feedback automatically.\n6. Merge: Merge strategy (merge/squash/rebase) is applied per\n BranchProtection. Post-merge hooks trigger downstream pipelines,\n release creation, and issue auto-close.\n",
"workflowKind": "development",
"triggerType": "event-driven",
"typicalCadence": "per-pull-request",
"complexity": "moderate"
},
"outgoingEdges": [
{
"from": "workflow:krate-pr-lifecycle",
"to": "role:backend-engineer",
"kind": "involves_role"
},
{
"from": "workflow:krate-pr-lifecycle",
"to": "role:fullstack-engineer",
"kind": "involves_role"
},
{
"from": "workflow:krate-pr-lifecycle",
"to": "role:tech-lead",
"kind": "involves_role"
},
{
"from": "workflow:krate-pr-lifecycle",
"to": "role:qa-engineer",
"kind": "involves_role"
},
{
"from": "workflow:krate-pr-lifecycle",
"to": "domain:software-engineering",
"kind": "applies_to_domain"
},
{
"from": "workflow:krate-pr-lifecycle",
"to": "domain:devops",
"kind": "applies_to_domain"
}
],
"incomingEdges": []
}