Issue-tracker-native execution engine for agentic workflows.
Find a file
Free Ekanayaka 77a2a1dcee
Some checks failed
dogfood-ci / dev-check (push) Has been cancelled
plans: Delete outdated plans
2026-06-05 09:27:31 +01:00
.cargo harness-workflow: add spec and validation foundations (Phase 2) 2026-05-29 05:45:15 +01:00
.forgejo/workflows Rename harness to temper 2026-06-02 21:54:03 +01:00
crates Fix reference delivery mechanical CI fallback 2026-06-05 08:46:12 +01:00
docs Fix reference delivery mechanical CI fallback 2026-06-05 08:46:12 +01:00
examples/reference-delivery Fix reference delivery mechanical CI fallback 2026-06-05 08:46:12 +01:00
plans/parallel-safe-forgejo-tests plans: Delete outdated plans 2026-06-05 09:27:31 +01:00
.gitignore git: Slimmer gitignore 2026-06-05 09:14:55 +01:00
AGENTS.md Remove Temper pi SDK agent coupling 2026-06-03 02:34:49 +01:00
Cargo.lock Add portable body_contains list filters 2026-06-04 21:43:47 +01:00
Cargo.toml examples: Remove smith 2026-06-03 21:10:06 +01:00
README.md Phase 4 mechanical landing workflow 2026-06-04 23:52:55 +01:00

Temper

Issue-tracker-native execution engine for agentic workflows.

Run agentic workflows on top of your Forge.

Temper is a workflow runtime that executes agentic workflows using your Forge as the source of truth.

Issues, pull requests, labels, reviews, CI status, comments, and dependency links become workflow state. Temper evaluates that state against a declared workflow and dispatches work to agents while enforcing valid transitions.

The Forge remains authoritative. There is no separate workflow database, no hidden workflow state, and no requirement to adopt a specific delivery process.

Define a workflow as a state machine. Temper executes it.

Docs · Agentic workflows · Workflow contract · Forge interface · Reference demo


Why

Most workflow systems keep their state in a separate orchestration service.

Issues are inputs. Pull requests are outputs. The actual workflow lives somewhere else.

Temper takes the opposite approach.

The Forge already contains the artifacts that software teams use to coordinate work:

  • issues
  • pull requests
  • labels
  • reviews
  • CI results
  • dependency links
  • comments

Temper treats those artifacts as workflow state.

A workflow is defined as a state machine over Forge artifacts. Workers inspect Forge state, perform authorized actions, and advance work through declared transitions. If an agent crashes, loses context, or restarts, workflow state remains intact because it lives in the Forge itself.

Humans and agents participate through the same interface and observe the same source of truth.


Core ideas

The Forge is authoritative

Temper does not maintain a separate workflow database.

Current workflow state is derived from the Forge itself:

  • labels
  • metadata
  • dependencies
  • reviews
  • CI status
  • pull requests
  • merge state

Polling is the correctness backstop. Webhooks are wake-up hints.

Every transition reloads current Forge state before mutating anything.

Workflows are state machines

Temper does not prescribe a software delivery process.

Users define workflows as state machines with:

  • roles
  • queues
  • transitions
  • gates
  • dependency rules
  • recovery behavior

Temper validates and executes those workflows.

Whether the process is simple or complex is entirely up to the workflow definition.

Agents operate through workflow contracts

Agents do not receive broad permission to manipulate repositories.

Instead, Temper derives role-specific capabilities from the workflow definition.

An agent can only perform actions that are valid for:

  • its role
  • the current state
  • the current transition

This keeps autonomous behavior aligned with declared workflow rules.

Durable execution

Workflow state survives:

  • agent crashes
  • process restarts
  • context loss
  • partial transitions
  • expired leases
  • infrastructure failures

Because the durable state already exists in the Forge.

Temper continuously reconciles observed state against workflow expectations and repairs drift when possible.


What Temper does

Given a set of repositories and workflow definitions, Temper repeatedly asks:

  • Which artifacts match an active queue?
  • Which role is eligible to act on them?
  • Which transitions are legal from the current state?
  • Which work requires agent judgment?
  • Which work can be handled mechanically?
  • Has anything stalled, expired, or drifted from the workflow?

The answers come from the workflow specification and current Forge state.

Temper then dispatches work, executes transitions, and keeps the workflow moving forward.


A simple example

A team defines a workflow with the following roles:

architect
engineer
reviewer
owner
controller

A new issue is created:

Add password reset

The workflow might define transitions like:

architect  -> prepare implementation work
engineer   -> implement and open PR
reviewer   -> approve or request changes
mechanical -> merge after required gates pass
owner      -> review post-merge alignment
controller -> repair, recover, and unblock work

Temper does not hard-code this process.

It simply evaluates the workflow definition, observes Forge state, and executes valid transitions.

If review requests changes, the workflow may route back to engineering.

If CI fails, the workflow may block progress.

If dependencies are resolved, the workflow may automatically unblock waiting work.

The behavior comes from the workflow definition, not from Temper itself.


Architecture

Forge plane
  issues · PRs · labels · comments · dependencies · reviews · CI · merges
  + Temper metadata blocks in artifact bodies
        ↑
temper-forge
  provider-neutral Forge trait and domain model
        ↑
temper-workflow
  workflow validation
  queue evaluation
  transition execution
  gate enforcement
  lease management
  drift reconciliation
        ↑
temper-runner
  repository scanning
  role dispatch
  mechanical workers
  external tool integration
        ↑
temper-production + external responder processes
  Forge integrations
  provisioners
  webhook triggers
  process-bound role/chat responders

The key invariant is simple:

The Forge is the source of truth.

Everything else can be restarted, replaced, or recovered from current Forge state.


What Temper is not

Temper is not:

  • an issue tracker
  • a project management tool
  • a coding agent
  • a workflow definition language tied to a single process
  • a hidden automation layer that owns workflow state

Temper is an execution engine.

It runs agentic workflows whose durable state lives in the Forge.


Status

Temper is under active development.

The current implementation is opinionated toward agentic software-delivery workflows and runs role-specific behavior through explicit process responder boundaries. The underlying workflow engine is designed around a more general model: state-machine workflows executed against Forge artifacts as the authoritative source of truth.