feat(handoffs): publish owner task interfaces
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a023c0-a0a3-7c03-b395-5a0d2757214d
This commit is contained in:
parent
a3952113d5
commit
890f3b05b5
12 changed files with 754 additions and 38 deletions
92
docs/owner-task-interface-contract_v1.md
Normal file
92
docs/owner-task-interface-contract_v1.md
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
---
|
||||
id: RMGR-CONTRACT-OWNER-TASK-INTERFACE-0001
|
||||
type: contract
|
||||
title: "Owner-task interface contract"
|
||||
version: "1"
|
||||
status: active
|
||||
created: "2026-08-22"
|
||||
updated: "2026-08-22"
|
||||
related:
|
||||
- RMGR-ADR-005
|
||||
- RMGR-WP-0010
|
||||
---
|
||||
|
||||
# Owner-task interface contract v1
|
||||
|
||||
An owner-task interface is a complete proposal that another repository can
|
||||
approve and adopt by reference. It transports implementation intent, not task
|
||||
lifecycle.
|
||||
|
||||
## Required shape
|
||||
|
||||
```yaml
|
||||
apiVersion: helixforge.repo-manager/v1
|
||||
kind: OwnerTaskInterface
|
||||
metadata:
|
||||
id: helixforge.example.consumer-port.v1
|
||||
title: Adopt the example consumer port
|
||||
source:
|
||||
repo: producing-repo
|
||||
workplan_task: PRODUCER-WP-0001-T04
|
||||
target:
|
||||
repo: consuming-repo
|
||||
owner_agent: consuming-repo
|
||||
approval:
|
||||
dispositions: [approved, amended, rejected]
|
||||
record_in: target owner work record
|
||||
task:
|
||||
title: Adopt the example consumer port
|
||||
priority: medium
|
||||
objective: Consume the producer contract without copying its authority.
|
||||
inputs:
|
||||
- ref: producing-repo/docs/example-contract_v1.md
|
||||
authority: producing-repo
|
||||
deliverables:
|
||||
- Implement the consumer adapter.
|
||||
constraints:
|
||||
- Do not infer missing identity.
|
||||
acceptance:
|
||||
- A contract fixture passes through the consumer boundary.
|
||||
verification:
|
||||
- make test
|
||||
```
|
||||
|
||||
`inputs`, `constraints`, and `verification` are optional. The objective,
|
||||
deliverables, and acceptance criteria are mandatory and owner-ready.
|
||||
|
||||
## Approval and adoption
|
||||
|
||||
The target owner records one disposition in its existing workplan task or
|
||||
decision:
|
||||
|
||||
```yaml
|
||||
interface_id: helixforge.example.consumer-port.v1
|
||||
source_revision: <Git commit containing the interface>
|
||||
disposition: approved # approved | amended | rejected
|
||||
```
|
||||
|
||||
This may be prose or structured metadata according to the target repository's
|
||||
existing convention. `amended` must cite the delta. The target task remains the
|
||||
only lifecycle-bearing implementation record.
|
||||
|
||||
The source task is complete after the validated interface is committed and its
|
||||
owner is notified. A later producer task is warranted only if an approved
|
||||
amendment requires producer-side changes.
|
||||
|
||||
## Discovery
|
||||
|
||||
```bash
|
||||
rmgr owner-interface validate --path interfaces
|
||||
rmgr owner-interface validate --path interfaces --owner ops-warden
|
||||
```
|
||||
|
||||
The command validates all interface files before returning their content. An
|
||||
owner filter matches either `target.repo` or `target.owner_agent`.
|
||||
|
||||
## Authority and safety
|
||||
|
||||
- The Git revision plus `metadata.id` pins the offered meaning.
|
||||
- Referenced records remain authoritative in their source repositories.
|
||||
- Interface files never contain secrets or mutable runtime observations.
|
||||
- An interface must not contain `status`, State Hub ids, or an assignee: those
|
||||
would turn it into an unregistered work-record lifecycle.
|
||||
Loading…
Add table
Add a link
Reference in a new issue