One report. Connected context.

ONE REPORT.
ONE VERIFIED
HANDOFF.

A customer reports a bug. A Strands agent chooses the guarded steps; Orville connects the work across GitHub, Trello and Discord, then reads each result back.

Explore the recorded handoff

Real app records, read back on September 14, 2026.

The customer report

Large CSV exports now fail outright. Hand this to engineering and tell the team what happened.

Report summary, shortened for display
Recorded resultREAD
BACK ✓

THE HANDOFF
HAS A TRAIL.

  • GitHubIssue #1 · Comment recorded
  • TrelloLinked follow up recorded
  • DiscordTeam status recorded

Out of scope? Unrelated archive request refused.

The recorded handoff

A REAL CASE.
A READABLE RECEIPT.

HARBOR-STRANDS-05 is a recorded demo run. A Strands agent drove every step; these records were independently read back after the run and again after its retry.

Recorded status: complete

CSV EXPORT → EXISTING ISSUE #1

September 14, 2026
Strands-driven · Three verified app records

01 / GitHubEngineering context attached
✓ Independently read back

Issue #1 · Comment 5667869897
Comment marker, ownership and issue existence checked.

02 / TrelloA linked customer follow up
✓ Independently read back

Card 6aa82c5d3a1ff6da7c9129b6
List, report marker and GitHub link checked. Private record.

03 / DiscordThe team gets the context
✓ Independently read back

Message 1549107085609013442
Report marker and both app links checked. Private record.

SAME REPORT ID. SAME RECORDED IDS.

The same report was run again after completion. The retry reused all three records — exactly one matching comment across the repository's open issues and one matching card in the list were counted before and after. Discord's saved message was read back; channel history was not counted.

Recorded evidence, not a live status feed. The terminal output of this run and its retry is saved; the Strands tool sequence (inspect candidates → select issue → GitHub → Trello → Discord) is visible in that output. This case does not establish a universal exactly-once guarantee.

Why this handoff helps
01

KEEP THE
CONTEXT CONNECTED.

The engineering issue, customer follow up and team status point back to the same report. The recorded Trello and Discord links were checked.

02

KEEP THE
ACTIONS BOUNDED.

A report can ask for unrelated work. Orville's execution layer offers scoped actions; destructive operations are absent. The archive request in this case was refused.

03

SEE WHAT
ACTUALLY LANDED.

Independent app reads check the resulting records before completion. Code, not the model's summary, computes the final status.

How it works

FROM REPORT
TO READ BACK.

  1. 01

    READ THE REPORT.

    A Strands agent inspects current GitHub issue candidates through a typed tool. Code validates the selected ID against that live list.

  2. 02

    BOUND THE ACTION.

    The agent calls guarded GitHub, Trello and Discord operations in order. Unrelated destructive requests cannot become execution actions.

  3. 03

    VERIFY THE RESULT.

    Read the app records back. Reuse known records on retry; hold ambiguous matches and uncertain outcomes for a person.

The model proposes the issue match; code validates it. A valid ID is not proof that the match is semantically correct, and an ambiguous match is paused for human review.

A trail you can inspect

LESS CONTEXT
TO REASSEMBLE.
MORE HANDOFF
TO INSPECT.

A few honest answers

WHAT TO KNOW.

A bounded hackathon prototype, with a recorded case you can inspect.

Does this page run Orville?

No. This is a static explanation of a recorded run. It does not accept reports or execute app actions.

What actually drives the handoff?

A Strands Agents SDK agent. It inspects GitHub candidates, selects an issue, and calls one guarded operation per app in a fixed order. Python code validates every choice and computes the final status from read-backs, not from the model's own summary.

Are these real customer records?

The report is a sample support ticket. The GitHub comment, Trello card and Discord message are real app records from the connected demo. Their IDs are shown above.

Can I open the app records?

Trello and Discord records are private. This page presents their recorded identifiers and read-back checks, without sending visitors to inaccessible destinations.

What happens when the outcome is uncertain?

Ambiguous matches need human review. An uncertain Discord send pauses for reconciliation. These failure behaviors are covered by local tests with simulated app responses, separate from the connected case.

What does the retry prove?

The same report ID and input reused the saved records in this demonstrated run. This is case evidence, not a guarantee that every retry in every environment produces exactly one record.

Is Orville production ready?

No. It uses local JSON state for serial runs, bounded GitHub searches, and has no public authenticated execution service. Running the CLI requires your own app and model credentials. The Groq endpoint used here emits repeated reasoning-content warnings during multi-turn tool loops; the runs completed and were verified despite them.

Follow the evidence

THE HANDOFF IS
IN THE RECEIPT.

Explore the recorded handoff