fix(kilo-docs): bead lifecycle diagram — use top-to-top edge routing

Main flow edges (open→in_progress→in_review→closed) now exit and enter
from the top of each node, arcing above. Failed/rejected transitions
exit from bottom of source to top of target, dropping below.
This commit is contained in:
John Fawcett
2026-04-30 16:52:26 -05:00
parent 56f4ce3669
commit 6b24da72fb
@@ -19,8 +19,8 @@ const nodes: Node[] = [
id: "open",
position: { x: 0, y: 100 },
data: { label: "open" },
sourcePosition: "right" as Position,
targetPosition: "left" as Position,
sourcePosition: "top" as Position,
targetPosition: "top" as Position,
style: {
...nodeBase.style,
background: "rgba(34,197,94,0.1)",
@@ -32,8 +32,8 @@ const nodes: Node[] = [
id: "in_progress",
position: { x: 200, y: 100 },
data: { label: "in_progress" },
sourcePosition: "right" as Position,
targetPosition: "left" as Position,
sourcePosition: "top" as Position,
targetPosition: "top" as Position,
style: {
...nodeBase.style,
background: "rgba(59,130,246,0.1)",
@@ -45,8 +45,8 @@ const nodes: Node[] = [
id: "in_review",
position: { x: 420, y: 100 },
data: { label: "in_review" },
sourcePosition: "right" as Position,
targetPosition: "left" as Position,
sourcePosition: "top" as Position,
targetPosition: "top" as Position,
style: {
...nodeBase.style,
background: "rgba(251,191,36,0.1)",
@@ -58,8 +58,8 @@ const nodes: Node[] = [
id: "closed",
position: { x: 640, y: 100 },
data: { label: "closed" },
sourcePosition: "right" as Position,
targetPosition: "left" as Position,
sourcePosition: "top" as Position,
targetPosition: "top" as Position,
style: {
...nodeBase.style,
background: "rgba(139,92,246,0.1)",
@@ -71,7 +71,7 @@ const nodes: Node[] = [
id: "failed",
position: { x: 310, y: 240 },
data: { label: "failed" },
sourcePosition: "right" as Position,
sourcePosition: "top" as Position,
targetPosition: "top" as Position,
style: {
...nodeBase.style,
@@ -92,6 +92,7 @@ const edges: Edge[] = [
id: "open-progress",
source: "open",
target: "in_progress",
type: "smoothstep",
label: "agent dispatched",
labelStyle: { fontSize: 10, fontFamily: "'JetBrains Mono', monospace", fill: "#888" },
...edgeBase,
@@ -101,6 +102,7 @@ const edges: Edge[] = [
id: "progress-review",
source: "in_progress",
target: "in_review",
type: "smoothstep",
label: "work complete",
labelStyle: { fontSize: 10, fontFamily: "'JetBrains Mono', monospace", fill: "#888" },
...edgeBase,
@@ -110,6 +112,7 @@ const edges: Edge[] = [
id: "review-closed",
source: "in_review",
target: "closed",
type: "smoothstep",
label: "approved & merged",
labelStyle: { fontSize: 10, fontFamily: "'JetBrains Mono', monospace", fill: "#888" },
...edgeBase,