Skip to content

Add shared external forge-effect reconciliation #297

Description

@taras

Story

As a workflow host implementor, I want one reconciliation contract for forge mutations, so Git push, pull-request creation, and issue creation do not invent separate replay policies or duplicate uncertain external effects.

Contract

An external effect derives stable identity from the WorkflowRun and expansion. It records filtered inputs, pre-state, observations, decision, and result locally, but does not claim a transaction across SQLite and the provider.

On first execution or resumption:

  1. observe provider state using the stable identity and effect-specific natural keys;
  2. adopt proven compatible completion;
  3. perform proven absence;
  4. reject conflict or permanent ambiguity; and
  5. let explicit middleware retry or suspend temporary unavailability.

The forge provider is contextual and provider-neutral. GitHub is the first adapter, not a type in shared component contracts.

Acceptance

Dependencies

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions