Inspiration
What it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for URIAgent
Devpost Submission: Competition Command Tower
Updated: 2026-06-08 KST
Track Selection
- Hackathon: UiPath AgentHack 2026
- Selected track: UiPath Maestro Case
- Rationale: The command tower is inherently exception-heavy case management — credential blockers, stale rules, timezone conflicts, and multi-agent routing are first-class citizens, not edge cases. Maestro Case is the only UiPath construct that handles dynamic multi-actor workflows where the path through each case is not known at design time.
Project Name
Competition Command Tower
Tagline
A UiPath Maestro Case that manages a portfolio of parallel hackathon competitions — automating intake, rule verification, multi-agent work routing, and human-approved submission through seven exception-aware stages.
Devpost Fields
Inspiration
Managing six simultaneous prize competitions produces compounding operational failures: rules change after initial read, deadlines conflict across PDT/EDT/KST time zones, platform credentials block specific competitions without stopping others, and work needs to route to different AI agents (Claude Code, Codex, Gemini) depending on the task type. A single missed requirement or unreviewed staleness flag can invalidate a submission that took days to build.
The inspiration was to build a workflow that treats each competition as a case with its own state, exception history, and human approval requirements — exactly the scenario UiPath Maestro Case was designed for.
What It Does
Competition Command Tower is a UiPath Maestro Case workflow that manages the full lifecycle of a hackathon competition entry:
Contest Intake (Stage 1, Robot): Scrapes the official rules page, normalizes the deadline across time zones, flags timezone ambiguity, and creates a structured case record.
Rule Verification (Stage 2, AI Agent): Checks freshness against the live page, resolves deadline conflicts, scores field confidence, and flags stale assumptions before work begins.
Credential and Access Gate (Stage 3, Human Task): Presents a structured approval form to the operator's Action Center inbox. No credentials are used and no public artifacts are created until the operator explicitly approves.
Work Routing (Stage 4, AI Agent): Decomposes the case into bounded tasks and dispatches each to the right agent lane (Codex for code, Claude Code for architecture and documentation, Gemini for alternatives, UiPath Robot for repo operations).
Builder Execution (Stage 5, Coding Agents): Each agent executes its task, emits a result packet, and appends a worklog entry. Credential boundaries trigger a return to the gate; secret-unsafe artifacts are quarantined rather than advanced.
Readiness Audit (Stage 6, AI Agent + Robot): Verifies every required Devpost asset (repo, license, README, video, deck, Automation Cloud proof), runs a secret safety scan, and produces a readiness packet.
Submission Gate (Stage 7, Human Task): Presents the pre-filled Devpost submission form to the operator. Submission fires only on explicit SUBMIT approval. The gate receipt and final audit trail close the case.
The system handles exceptions at every stage: fetch failures, stale rules, credential blockers, missing video, and live platform unavailability all have named exception codes, defined resolution paths, and Action Center escalation.
How We Built It
We built a working, offline-runnable Maestro Case engine — not a design
spec. The seven-stage case lifecycle, four exception classes (retry, re-entry,
escalation), and the two blocking human gates are implemented as a stdlib-Python
state machine with an append-only audit trail, driven by an interactive FastAPI
dashboard where an operator clears the gates from the browser and watches the
cases advance. The same code targets a live UiPath Automation Cloud tenant by
setting five environment variables — make_backend() returns the
UiPathMaestroBackend (OAuth client_credentials → Maestro process-instances +
Action Center) when credentials are present, otherwise the LocalMaestroBackend
used by the demo and tests. This is the SplunkRestBackend pattern: one interface,
local runs offline, the cloud path is code-complete and credential-gated.
Build process:
- Implemented the case engine (
case_engine.py):advance(), retry with exponential backoff, stage re-entry, escalation, and human-task gating that blocks the case untildecide(). Every transition emits one AuditEvent. - Implemented the seven stage handlers, the four named exception classes with detect+handle policies, the multi-agent routing table, and readiness scoring.
- Built the
LocalMaestroBackend+UiPathMaestroBackendadapter and themake_backend()one-line switch (seedocs/DEPLOY_RUNBOOK.md). - Built the FastAPI dashboard (
webapp/) with approve/defer/skip human-task endpoints, a liv
Log in or sign up for Devpost to join the conversation.