Catalog/P family/P29
Proposed specificationSource-located exemplarH1H3

Harness mimicry and service hosting

Preserve an interface while changing its implementation or host.

JOIN POINTexternal_harness_compatibilityRECORD STATUSCandidate · v0.1.0
UML class view for Harness mimicry and service hosting, showing participant roles, received calls, and analytical dependencies
FIG. P29 / UML CLASS VIEW
Object interaction diagram for Harness mimicry and service hosting, showing role collaboration and a numbered message sequence
FIG. P29 / OBJECT INTERACTIONS
Context
One harness exposes or consumes an external agent-client or service interface.
Trigger
A remote client invokes the adapter or a hosted backend is selected.
Structure
Protocol adapter, identity, capability mapping, and service boundary.
Effect
The external protocol is preserved while semantics and permissions are translated explicitly.
Requires
Protocol version and capability mapping are known.
Ensures
Requests, results, and errors satisfy the compatibility contract.
Invariant
Interface compatibility does not erase backend-specific authorization or effects.
Violation
Unsupported capabilities, disconnects, and translation errors are explicit.

Negative control

A similar function signature without protocol compatibility is insufficient.

Permitted variation

ACP emulation, server hosting, transport adapter, and backend registry.

Test obligation

Test cross-backend parity, unsupported method, reconnect, and permission mapping.

Evolution question

Did harnesses evolve from mimicry toward hosted multi-backend services?

PROMPT SKETCH
Expose the harness through a declared compatibility protocol. Map capabilities explicitly, return protocol-shaped errors, and reject requests that the backend cannot satisfy.
CODE DESIGN / PYTHON
def handle(request, backend, protocol):
    if not protocol.supports(request.method):
        return protocol.error("method_not_supported", request.id)
    try:
        result = backend.invoke(protocol.to_backend(request))
    except BackendError as error:
        return protocol.error(error.code, request.id, detail=error.detail)
    return protocol.from_backend(result)

Illustrative design sketch. Compatibility is a contract over requests, results, and errors, not a renamed endpoint. This example is a teaching aid, not implementation evidence or a conformance claim.

Join point
external_harness_compatibility
Source locator
See the source record.
Lexical cue
(?i)\b(?:mimic(?:ry)?|emulat(?:e|ion)|ACP[_-]?client|agent[_-]?client[_-]?protocol)\bFrozen expression, v0.1.0. A match is a retrieval cue, not a confirmed implementation.
Aliases
None
Canonical exemplar
OpenHands/software-agent-sdkopenhands-sdk/openhands/sdk/agent/acp_agent.py:1815Support: tests/sdk/agent/test_acp_agent.py:1
Negative control
A similar function signature without protocol compatibility is insufficient.

Scope-anchored review. pohe-agent analyze <repo> --pattern P29 anchors the cue to its enclosing declaration and checks a separate operational signature for all four pointcut dimensions. Missing roles and negative-control risks remain visible; a structural match is not E2/E3. Calibration report ↗

Source-located exemplar

A concrete source anchor is available for this proposed record. It is one exemplar, not evidence that all repositories—or every contract field—conform.

Review boundary: this candidate and its specification come from an AI-assisted study. Independent human validation remains open.

ANY-EVIDENCE FAMILY COVERAGE29/36

80.6% of repository families in the frozen panel have at least one current cue, historical cue, or canonical source layer. This is not confirmed prevalence.

Current lexical-cue repositories: 31 / 41
Canonical source anchorOpenHands/software-agent-sdk 5c524ad65d81openhands-sdk/openhands/sdk/agent/acp_agent.py:1815

ACP-compatible agent hosting and external harness adaptation.

Exploratory retrieval cue Regex / v0.1.0
(?i)\b(?:mimic(?:ry)?|emulat(?:e|ion)|ACP[_-]?client|agent[_-]?client[_-]?protocol)\b

This expression is a discovery instrument only. A match is a retrieval cue—not a confirmed implementation, pointcut match, or contract proof.