This repository is a prep directory and starter kit for the hackathon. It is not meant to be a finished product. It gives the team a governed baseline for building enterprise AI workflows where multiple agents can analyze a problem, propose evidence and converge on a decision that is traceable and auditable.
The default challenge in this repo is AI vendor selection, but the real point is broader: use Converge to build decision systems that can justify what they did, stop honestly when confidence is too low and leave behind an audit trail that a business owner or auditor can inspect.
Sponsors: Kong · Vivicta Challenge contributor: Reflective Labs
This repo is a GitHub template. Do not clone it directly — use the green "Use this template" button on GitHub to create your own copy. That gives your team a clean repo with the full starter kit and no upstream link.
Once you have your own repo:
This repo should help a team get from zero to a working governed demo quickly:
Today, the repo already contains the Rust workspace, the reference evaluate-vendor truth, a shared app layer, and a simple server harness for local development. Teams are expected to extend it during the hackathon with real agents, real integrations, and the Svelte/Tauri shell in apps/desktop/.
This project depends directly on Converge. It is not just inspired by Converge patterns; it is built on the Converge runtime crates:
converge-coreconverge-domainThose dependencies are pulled from crates.io, which makes this repo a thin application layer on top of Converge.
Converge provides the core mechanics:
This repo adds the hackathon-specific pieces on top of that foundation:
If Converge is removed, the main execution model of this repo disappears with it. That dependency should be explicit to every team.
This starter is intentionally opinionated.
Use Rust for as much of the solution as possible:
The goal is not to force Rust everywhere for ideological reasons. The goal is to keep the critical logic, traceability, and integration behavior in one strongly typed runtime.
The preferred frontend shape is:
That gives teams a lightweight desktop shell while keeping most non-UI logic in Rust. The repo now includes a minimal Bun + Svelte + Tauri scaffold centered on validating vendor-selection Gherkin locally before the fuller execution flow is added, and it continues to rely on the shared Rust application layer for the deeper workflow logic.
The intended runtime shape is:
evaluate-vendor truth and runs Converge locally.The repo now includes example vendor-selection inputs:
The shared Rust app layer can preview or execute either format, which is the boundary a Tauri app should use.
This is a self-contained app. The UI should not call a remote governance backend by default. The only remote traffic should be outbound calls from the Rust core to Kong and the services it fronts.
Use Kong for:
That means the intended pattern is:
This keeps the demo realistic: one governed path for both model access and tool access.
Use converge-provider as the default Kong adapter. Do not hand-roll Kong HTTP calls in app code unless you are doing something the provider crate does not support yet.
The current desktop app follows this pattern:
.env in the Tauri layer.KONG_AI_GATEWAY_URL and KONG_API_KEY.KongGateway::from_env().KongRoute for the LLM use case.gateway.llm_provider(route) for guided validation or rewrite flows.Minimal .env:
KONG_AI_GATEWAY_URL=https://<provided-at-hackathon>
KONG_API_KEY=<your-team-key>
Desktop-specific optional settings:
KONG_LLM_ROUTE=default
KONG_LLM_UPSTREAM_PROVIDER=openai
KONG_LLM_UPSTREAM_MODEL=gpt-4
KONG_LLM_REASONING=true
Some teams will not have access to real enterprise systems during the event. That should not block the architecture.
A good hackathon approach is:
Examples of mock services that fit this repo:
The reference truth is evaluate-vendor. It is the primary use case for this prep repo. It demonstrates a governed workflow for choosing an AI vendor in a way that is defensible to auditors and stakeholders.
The intended multi-agent flow is:
Every agent contributes evidence. Converge decides when the workflow has enough evidence to converge.
apps/
desktop/ Svelte + Tauri shell to be built during the hackathon
crates/
governance-kernel/ Domain model and in-memory store
governance-truths/ Truth catalog, criteria, Converge bindings
governance-server/ Local harness and truth executors
governance-app/ Shared Rust app layer for the desktop shell
examples/ Sample vendor-selection Gherkin and truth files
docs/ Architecture and Kong guidance
The reference implementation lives in evaluate_vendor.rs. It currently uses placeholder agents so teams can focus on replacing them with real logic.
You need Rust (1.93+). Install it from rustup.rs if you don't have it.
Once you have Rust, install the tools you need with cargo:
cargo install just
cargo install tauri-cli # only needed for desktop work
For the desktop app you also need Bun:
curl -fsSL https://bun.sh/install | bash
git clone <this-repo>
cd converge-governance-hackathon
cp .env.example .env # edit with your team's Kong credentials
just hit-the-ground-running
This builds the workspace, runs all tests, and checks lint. If it passes, you are ready to go.
After that:
just server # start the local harness (http://localhost:8080)
just install-desktop # install desktop frontend dependencies
just dev-desktop # run the desktop app in dev mode
just server is only a local harness for exercising the runtime while the Tauri shell is still being built.
To start fresh:
just clean # delete all build artifacts
Desktop packaging commands are also prepared in the top-level Justfile:
just install-desktopjust dev-desktopjust build-desktopjust package-desktopjust deployThe desktop commands use Bun as the frontend package manager and task runner. The desktop app is configured to build for macOS, Windows, and Linux. Tauri produces native binaries, so you can only build for the OS you are running on.
Tauri 2 also supports iOS and Android, but mobile builds require additional setup (Xcode for iOS, Android SDK for Android) and are not in scope for this hackathon. If someone wants to pursue it, the Tauri mobile docs cover what is needed.
Then exercise the reference truth:
curl -X POST http://localhost:8080/v1/truths/evaluate-vendor/execute \
-H 'Content-Type: application/json' \
-d '{"inputs": {"vendors": "Acme AI, Beta ML, Gamma LLM"}}'
.feature and .truths.json vendor-selection filesGET /health
GET /v1/truths
POST /v1/truths/{key}/execute
GET /v1/decisions
GET /v1/vendors
GET /v1/audit