Skip to content

design(agent-harness): define Software Factory A2A/Postman integration boundary #300

Description

@i9wa4

Summary

Define the integration boundary between the dotfiles-managed Software Factory
agent harness and the tmux-a2a-postman daemon repository.

The current harness contract is installed from config/tmux-a2a-postman/postman.md.
It defines roles, review routing, command approval, public-write gates, and the
future-only diplomat role. The daemon repository owns delivery, mailbox,
status, routing, and persistence behavior. The repositories need one explicit
contract for how those two ownership domains evolve together.

Why a new issue

No open issue in this repository matched Software Factory, A2A, or
postman in an open-and-closed duplicate search on 2026-07-26. Closed #95 is
a historical Go rewrite architecture for the daemon itself; #101 covers
inbox/context paths; #139 covers bounded approval-lane policy; #171 and #179
cover migration/compaction of role-contract documentation. None defines the
current cross-repository Software Factory integration contract.

This conclusion is based on the issue inventory and current checked-in
harness sources. It is not a claim that no unrecorded discussion exists.

Scope

  • State the ownership boundary between this repository and i9wa4/tmux-a2a-postman.
  • Define versioning/compatibility expectations for the role template,
    skill_path catalog, message metadata, status projections, and command
    approval surfaces consumed by the harness.
  • Define lifecycle handoff rules for task intake, durable task artifacts,
    worker execution, guardian/critic review, human-gated public writes, and
    completion reporting.
  • Define failure and observability semantics: queued versus processed delivery,
    timed-out daemon-submit requests, late responses, stale input requests, and
    when an agent must report transport uncertainty rather than retry.
  • Define the boundary for command approval: it is an audited decision lane,
    not sandboxing or a substitute for human approval of public/production
    writes.
  • Define the future diplomat boundary: cross-session authorization remains
    disabled until the daemon-side feature and an approved protocol contract
    exist.

Dependencies and boundaries

  • i9wa4/dotfiles owns harness policy and installed role-template sources,
    including config/tmux-a2a-postman/postman.md and agent-harness skills.
  • i9wa4/tmux-a2a-postman owns the Go daemon/CLI, delivery semantics,
    storage, status projection, and runtime behavior.
  • This issue must not prescribe a daemon implementation or change daemon
    runtime/configuration. Such work belongs in i9wa4/tmux-a2a-postman after
    its own issue, design, and review gates.
  • Coordinate with daemon-side cross-session/diplomat, command-approval, and
    daemon-submit reliability work before relying on those capabilities in the
    harness.

Acceptance criteria

  • A source-of-truth table names each contract surface, its owning
    repository, its consumer, and its compatibility/release expectation.
  • The task-to-completion lifecycle names the required evidence and the
    human-public-write boundary without duplicating daemon implementation
    detail.
  • Delivery-state vocabulary distinguishes queued, processed, timeout,
    pending, and late response, including safe retry/escalation behavior.
  • Command approval and sandbox/human-approval responsibilities are
    separated explicitly.
  • The diplomat/cross-session feature is documented as disabled by default
    until a daemon-side protocol and verification gate are approved.
  • Proposed changes, if any, identify only dotfiles-owned sources and list
    the corresponding daemon-side dependency or stable issue URL.
  • Review includes maintainability and security evidence for both ownership
    boundaries before implementation work starts.

Non-goals

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions