This repository has been archived on 2026-04-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
core/packages/content-approval/manifest.json
Jeffrey Smith f9cd5bce0f Feat v0.3.6 demo workflows + interactive demo
Four example workflow packages proving the engine end-to-end:
- Bug Report Triage: public entry, branch routing, SLA timer
- Employee Onboarding: Starlark automated stages, signoff gate
- Content Approval: multi-party signoff, revision cycle loop
- Webhook Notifier: http.post, connections fallback, delivery logging

Demo surface at /s/workflow-demo with cards, stage diagrams, Starlark
viewer, API examples, active/published status, and copyable public links.

Engine fixes: started_by in automated context, sla_seconds in package
installer, parseSnapshotStages for wrapped/legacy formats.

Platform fixes: extension SDK boot in base.html (Preact globals + boot()),
admin teams paginated response extraction, workflow adoption endpoint
(POST /teams/:teamId/workflows/:id/adopt), team-admin copyable link.

Review pass remains on roadmap for remaining UI polish.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 15:48:47 +00:00

96 lines
2.7 KiB
JSON

{
"id": "content-approval",
"title": "Content Approval",
"type": "workflow",
"version": "0.1.0",
"tier": "browser",
"icon": "📝",
"author": "Switchboard Core",
"description": "Multi-party content review with quorum signoff and revision cycle.",
"permissions": [],
"workflow_definition": {
"name": "Content Approval",
"slug": "content-approval",
"entry_mode": "team_only",
"stages": [
{
"name": "draft",
"ordinal": 0,
"stage_mode": "form",
"audience": "team",
"stage_type": "simple",
"auto_transition": false,
"form_template": {
"fieldsets": [
{
"label": "Content Draft",
"fields": [
{ "key": "title", "label": "Title", "type": "text", "required": true },
{ "key": "body", "label": "Body", "type": "textarea", "required": true },
{ "key": "category", "label": "Category", "type": "select", "options": ["blog", "announcement", "documentation", "policy"], "required": true }
]
}
]
}
},
{
"name": "review",
"ordinal": 1,
"stage_mode": "review",
"audience": "team",
"stage_type": "simple",
"auto_transition": false,
"stage_config": {
"validation": {
"required_approvals": 2,
"reject_action": "revision"
}
}
},
{
"name": "revision",
"ordinal": 2,
"stage_mode": "form",
"audience": "team",
"stage_type": "simple",
"auto_transition": false,
"form_template": {
"fieldsets": [
{
"label": "Revision",
"fields": [
{ "key": "title", "label": "Title", "type": "text", "required": true },
{ "key": "body", "label": "Body", "type": "textarea", "required": true },
{ "key": "revision_notes", "label": "What Changed", "type": "textarea", "required": true }
]
}
]
},
"branch_rules": [
{ "field": "title", "op": "exists", "value": "", "target_stage": "review" }
]
},
{
"name": "publish",
"ordinal": 3,
"stage_mode": "form",
"audience": "team",
"stage_type": "simple",
"auto_transition": false,
"form_template": {
"fieldsets": [
{
"label": "Publish Confirmation",
"fields": [
{ "key": "publish_url", "label": "Published URL", "type": "text" },
{ "key": "publish_notes", "label": "Notes", "type": "textarea" }
]
}
]
}
}
]
}
}