93 lines
2.7 KiB
Markdown
93 lines
2.7 KiB
Markdown
|
|
---
|
||
|
|
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.
|