Per-ticket audit trail: record model + effort + outcome ON the issue/PR #310

Closed
opened 2026-07-01 18:19:32 +00:00 by igor · 0 comments
Collaborator

Goal

An audit trail on the Forgejo ticket itself — read a task and see how it went. Not (only) the cost ledger; the story should live where you read the work.

What it looks like

When the agent works an issue -> PR, the harness posts/maintains a structured run log on the PR (and/or issue) capturing each step:

  • who did the work and how hard: worked: sonnet@high
  • each review pass + verdict + effort: review: opus@xhigh -> REQUEST_CHANGES (round 1)
  • rework escalation: reworked: sonnet@xhigh
  • final disposition: review: opus@xhigh -> APPROVE, merged / escalated to Josh / blocked

So one glance at a ticket tells you the whole journey: what model + effort touched it, how many rounds, and how it ended.

Where the pieces are

  • Model is already known per call.
  • Effort lands with --effort (#308).
  • Outcomes (verdicts, rework rounds, merge/escalate) the review tick already tracks in .review state.

So this is mostly surfacing what we already have, as a comment on the ticket, plus effort once #308 wires it. The cost ledger stays the aggregate/spend view; this is the per-ticket provenance. Companion to #308.

## Goal An **audit trail on the Forgejo ticket itself** — read a task and see how it went. Not (only) the cost ledger; the story should live where you read the work. ## What it looks like When the agent works an issue -> PR, the harness posts/maintains a structured **run log** on the PR (and/or issue) capturing each step: - who did the work and how hard: `worked: sonnet@high` - each review pass + verdict + effort: `review: opus@xhigh -> REQUEST_CHANGES (round 1)` - rework escalation: `reworked: sonnet@xhigh` - final disposition: `review: opus@xhigh -> APPROVE`, `merged` / `escalated to Josh` / `blocked` So one glance at a ticket tells you the whole journey: what model + effort touched it, how many rounds, and how it ended. ## Where the pieces are - **Model** is already known per call. - **Effort** lands with `--effort` (#308). - **Outcomes** (verdicts, rework rounds, merge/escalate) the review tick already tracks in `.review` state. So this is mostly *surfacing* what we already have, as a comment on the ticket, plus effort once #308 wires it. The cost ledger stays the aggregate/spend view; this is the per-ticket provenance. Companion to #308. <!-- cos: audit-trail -->
igor changed title from Telemetry: track model + effort + outcome per call (tuning data for the effort ladder) to Per-ticket audit trail: record model + effort + outcome ON the issue/PR 2026-07-01 18:32:41 +00:00
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
joshtronic/igor#310
No description provided.