# In Progress

## Key Ideas

- **Claimed Work**: in-progress means active work is owned by a node.
- **Observable Execution**: the work should expose process, agent, logs, and evidence as it advances.
- **Recoverable Interruption**: interruption should leave enough state to retry, resume, or reassign.

## Purpose

In-progress exists to make active work explicit. A Goal should not disappear into an agent turn, terminal command, or hidden process once work begins.

## Expected Role

In-progress should connect the Goal to node ownership, workflow claims, process execution, agent activity, target-app context, and evidence. Other nodes and agents should be able to see that the work is already active and avoid duplicating it.

If an in-progress run fails or is interrupted, Refine should preserve what happened and decide whether the Goal returns to todo, moves to failed, or follows a recovery path.

## What Happens

When a Goal is in-progress:

- A node owns the active attempt.
- Refine records the workflow claim, provider or actor, target app, and execution context.
- Agents use guidance, governance, tools, files, terminal/process execution, and target-app lifecycle context to act on the work.
- The implementing Goal Agent runs in a background PTY owned by this workflow
  attempt. A user may attach through CLI or browser without creating a duplicate
  agent or changing workflow ownership.
- Before the PTY starts, Refine pins the Round's context contract: governance
  product, constitution, and rules; a short workflow summary; enabled guidance
  candidates; Goal context; previous Rounds; and the current Round request.
- The pinned agent-context value remains the durable internal snapshot. One
  shared prompt serializer maps it into a flat Markdown specification without a
  JSON representation or duplicated Goal and Round sections. The authoritative
  latest-Round request remains the final substantive instruction. Large
  composed frames use the shared provider prompt transport, and the
  workflow-owned PTY retains its artifact lease through terminal handoff so
  early exec or command-channel cleanup cannot replace the real provider
  failure.
- Guidance selection happens inside the implementation turn and is returned in
  the completion signal. It never requires a separate provider invocation.
- Post-implementation governance evaluates against the pinned governance
  snapshot rather than reloading settings that may have changed mid-turn.
- A Goal Agent that truly needs a user decision keeps its process and claim alive,
  records an explicit needs-input state, and continues in the same session after
  the user responds.
- Silence does not become needs-input; the Goal Agent remains autonomous and
  makes the best decision supported by its current context.
- Process output, logs, changed files, agent output, and intermediate evidence should remain observable.
- Other nodes should not silently duplicate the same active work.
- On success, the work should produce a reviewable handoff and move toward ready-merge or another appropriate next state.
- On interruption or failure, Refine should preserve evidence and route the Goal to retry, failed, or recovery.

## Future Direction

Future in-progress behavior should support richer concurrency controls, leases, partial progress, cooperative multi-agent work, and stronger recovery semantics while preserving clear ownership.
