- Added a new Archify skill, enabling users to create polished architecture, workflow, sequence, data-flow, and lifecycle diagrams. - Implemented comprehensive functionality including rendering, validation, and delivery of diagrams in various formats. - Integrated a user-friendly command-line interface for generating and previewing diagrams. - Developed supporting files including package.json, LICENSE, and SKILL.md for documentation and licensing. - Added unit tests to ensure reliability and functionality of the new skill. These changes enhance the application by providing a structured approach to visualizing system architecture and workflows, improving user experience and data representation.
72 lines
4.3 KiB
JSON
72 lines
4.3 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"diagram_type": "lifecycle",
|
|
"meta": {
|
|
"title": "Agent Run Lifecycle",
|
|
"output": "examples/lifecycle-agent-run.html",
|
|
"viewBox": [980, 660],
|
|
"animation": "trace",
|
|
"quality_profile": "showcase",
|
|
"views": [
|
|
{ "id": "main-lifecycle", "label": "Main lifecycle", "focus": ["queued", "planning", "executing", "reviewing", "completed"], "note": "Follow the ordered phases from accepted request to completed response." },
|
|
{ "id": "human-waits", "label": "Human and input waits", "focus": ["executing", "approval", "reviewing", "blocked"], "note": "See where the run pauses without becoming terminal." },
|
|
{ "id": "recovery-and-exits", "label": "Recovery and terminal exits", "focus": ["executing", "failed", "blocked", "cancelled", "expired"], "note": "Separate retryable failure from cancellation and expiry." }
|
|
]
|
|
},
|
|
"lanes": [
|
|
{ "id": "main", "label": "Lifecycle phases" },
|
|
{ "id": "waiting", "label": "Interruptions" },
|
|
{ "id": "exceptions", "label": "Recovery loop" },
|
|
{ "id": "terminal", "label": "Terminal exits" }
|
|
],
|
|
"states": [
|
|
{ "id": "queued", "type": "start", "label": "Queued", "sublabel": "request accepted", "lane": "main", "col": 0, "step": "01", "tag": "entry" },
|
|
{ "id": "planning", "type": "active", "label": "Planning", "sublabel": "build task graph", "lane": "main", "col": 1, "step": "02", "tag": "model" },
|
|
{ "id": "executing", "type": "active", "label": "Executing", "sublabel": "tool calls", "lane": "main", "col": 2, "step": "03", "tag": "work" },
|
|
{ "id": "reviewing", "type": "decision", "label": "Reviewing", "sublabel": "quality gate", "lane": "main", "col": 3, "step": "04", "tag": "check" },
|
|
{ "id": "completed", "type": "success", "label": "Completed", "sublabel": "final response", "lane": "main", "col": 4, "step": "05", "tag": "done" },
|
|
{ "id": "approval", "type": "waiting", "label": "Needs Approval", "sublabel": "human gate", "lane": "waiting", "col": 0, "tag": "pause" },
|
|
{ "id": "blocked", "type": "waiting", "label": "Blocked", "sublabel": "missing input", "lane": "waiting", "col": 1, "tag": "wait" },
|
|
{ "id": "failed", "type": "failure", "label": "Failed", "sublabel": "recoverable error", "lane": "exceptions", "col": 0, "yOffset": 78, "tag": "retryable" },
|
|
{ "id": "cancelled", "type": "failure", "label": "Cancelled", "sublabel": "user stopped", "lane": "terminal", "col": 0, "tag": "terminal" },
|
|
{ "id": "expired", "type": "failure", "label": "Expired", "sublabel": "timeout", "lane": "terminal", "col": 1, "tag": "terminal" }
|
|
],
|
|
"transitions": [
|
|
{ "id": "approval-needed", "from": "executing", "to": "approval", "variant": "security", "fromSide": "bottom", "toSide": "top", "route": "straight" },
|
|
{ "id": "review-blocked", "from": "reviewing", "to": "blocked", "variant": "default", "route": "drop" },
|
|
{ "id": "execution-failed", "from": "executing", "to": "failed", "variant": "security", "fromSide": "left", "toSide": "left", "via": [[320, 157], [320, 385]] },
|
|
{ "id": "failed-retry", "from": "failed", "to": "executing", "variant": "emphasis", "fromSide": "left", "toSide": "top", "via": [[20, 385], [20, 80], [402, 80]] },
|
|
{ "id": "block-expired", "from": "blocked", "to": "expired", "variant": "security", "fromSide": "bottom", "toSide": "top", "route": "straight" },
|
|
{ "id": "approval-cancelled", "from": "approval", "to": "cancelled", "variant": "security", "fromSide": "bottom", "toSide": "top", "via": [[480, 336], [480, 432], [402, 432]] }
|
|
],
|
|
"cards": [
|
|
{
|
|
"dot": "emerald",
|
|
"title": "Main Path",
|
|
"items": [
|
|
"The run has five ordered phases from queue to completion",
|
|
"The primary lifecycle is carried by one horizontal rail",
|
|
"Completion is a phase, not a detached side box"
|
|
]
|
|
},
|
|
{
|
|
"dot": "amber",
|
|
"title": "Human + Input Gates",
|
|
"items": [
|
|
"Approval pauses execution without ending the run",
|
|
"Blocked waits for missing user input",
|
|
"Wait states remain non-terminal until cancellation or expiry"
|
|
]
|
|
},
|
|
{
|
|
"dot": "rose",
|
|
"title": "Terminal + Recovery",
|
|
"items": [
|
|
"Failed loops back while retry budget remains",
|
|
"Cancelled and Expired are exits from the lifecycle",
|
|
"Terminal exits do not point back into active execution"
|
|
]
|
|
}
|
|
]
|
|
}
|