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>
51 lines
1.7 KiB
Markdown
51 lines
1.7 KiB
Markdown
# Bug Report Triage
|
|
|
|
Public bug report submission with severity-based routing and SLA timers.
|
|
|
|
## Features
|
|
|
|
- **Public entry** — anyone with the link can submit a bug report (no auth)
|
|
- **Progressive fieldsets** — two-step form (Report Details + Reproduction)
|
|
- **Branch rules** — severity=critical routes to senior queue, otherwise standard queue
|
|
- **SLA timer** — critical fixes have a 1-hour SLA (fires `workflow.sla_breach` event)
|
|
- **Team assignment** — classify, fix, and verify stages are team-scoped
|
|
|
|
## Stage Flow
|
|
|
|
```
|
|
[submit] → [classify] → [fix-critical] → [verify]
|
|
public team ↘ [fix-normal] ↗ team
|
|
team
|
|
```
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
# Via admin API
|
|
curl -X POST $BASE/api/v1/admin/packages/install \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-F "file=@packages/bug-report-triage"
|
|
```
|
|
|
|
## API Walkthrough
|
|
|
|
```bash
|
|
# 1. Start public instance (no auth)
|
|
curl -X POST $BASE/api/v1/public/workflows/$WF_ID/start \
|
|
-H 'Content-Type: application/json' \
|
|
-d '{"data": {"reporter_email": "user@example.com", "summary": "Login broken", "component": "ui", "severity": "critical", "steps": "1. Click login", "expected": "Login page", "actual": "500 error"}}'
|
|
|
|
# 2. Resume (check status)
|
|
curl $BASE/api/v1/public/workflows/resume/$ENTRY_TOKEN
|
|
|
|
# 3. Team claims classify assignment
|
|
curl -X POST $BASE/api/v1/teams/$TEAM/assignments/$ASSIGN_ID/claim \
|
|
-H "Authorization: Bearer $TOKEN"
|
|
|
|
# 4. Advance classify (triggers branch rule)
|
|
curl -X POST $BASE/api/v1/teams/$TEAM/instances/$INST/advance \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H 'Content-Type: application/json' \
|
|
-d '{"data": {"severity": "critical", "notes": "Confirmed production issue"}}'
|
|
```
|