Zulip + Support demo
A customer-support agent for the zulip/zulip repo's own issue tracker, with SLA + escalation lineage.
Reproduce
cd /tmp
git clone https://github.com/zulip/zulip.git
cd zulip
git checkout <pinned-SHA>
uvx harnessforge init --no-llm --blueprint support-agent
What gets written
AGENTS.mdwith the support loop (intent → KB → ticket → escalate)SOUL.mdsetting the "warm but brief, no corporate cliché" voice — appropriate for an OSS communityTOOLS.mdrecommendinggithub(Zulip's tracker),postgres,slack, and the SLA matrixMEMORY.mddefiningconversation+ticket-historyschemasSKILLS/classify-intent/— categorize inbound issuesSKILLS/retrieve-kb-answer/— search Zulip's own docs firstSKILLS/file-ticket/— create a GitHub Issue with proper lineageSKILLS/escalate-if-unresolved/— Slack ping when SLA breached- Adapter files for Claude Code, Cursor, Continue, Windsurf, Codex
Why this demo
- Large Django app with a real ticket model — exercises support-agent end-to-end
- harness picks up existing issue templates as memory schema reference
SOUL.mdreflects Zulip's known open-source community tone- The validator
ticket_lineageenforces the same convention Zulip itself prefers — explicit "originating message" backlink on every triage