# Native Runner integration working templates Use these with the [Runner integration playbook](RUNNER-INTEGRATION-PLAYBOOK.md). They cover adding a harness/provider to the **new, native Paperclip Runner**. Legacy direct-adapter authoring and migration are outside scope; existing behavior is preserved through compatibility checks. The templates require no historical chat, private task, evidence archive, or separate private repository. Copy only the sections needed for the current integration. Replace placeholders; these are documentation templates, not executable schemas or proof of completion. Repository plans belong in dated `doc/plans/YYYY-MM-DD--integration.md` files. A Paperclip issue's requested plan belongs in its plan document. ## 1. Release contract ```markdown # integration — Owner: Source baseline / branch / prerequisite: Requested finish line: Authorized actions and spending: ## User outcome ## Scope - Native Runner harness driver, provider translation, and transport: - First acceptance environment: - Supported OS/architectures and required proof level for each: - Authentication/setup path: - Runtime-auth versus repository/MCP connection method, ownership, and grants: - Save/reopen/Test/reconnect/revoke proof and selected probe environment: - Caller-selected model/mode policy: - Acceptance model/reasoning/mode, separately from product policy: - Required capabilities and applicable acceptance cell IDs: - Deferred/unsupported capabilities and product treatment: - Accounting requirements and unknowns: - Campaign/account/key/infrastructure/review limits: - Retry policy and cleanup obligations: - Publication/deployment/merge authority: ## Architecture - Provider-owned translation and launch code: - Shared contracts that need a new provider-neutral capability: - Instruction/tool/credential admission: - Recovery identity and allowed refreshes: - Cancellation and terminal settlement: - Packaging and normal installation: - Database constraints, migrations, and generated declaration/catalog sources: - Clean PR-layer builds and normal local/remote artifact resolution: - Existing native-provider and legacy-direct-adapter behavior preserved: ## Acceptance and delivery ## Scope changes | Date | Decision and authority | New scope | Preserved exclusions/failures | | --- | --- | --- | --- | ``` ## 2. Capability inventory Use one row per capability or meaningful field. “Implemented” and “qualified” are separate columns. An absence claim needs evidence at the relevant layer. | Capability/field | Exact harness/version/mode | Native evidence | Transport/wrapper | Runner mapping | Durable product/UI | Qualification | Loss/reason/next action | | --- | --- | --- | --- | --- | --- | --- | --- | | Example: active steering | `` | `` | `` | `` | `` | `` | `` | Allowed evidence labels: documented; source-observed; credential-free observed; authenticated observed; product-qualified; unverified; confirmed absent in the specified implementation. Do not collapse them into a single supported flag. ## 3. Acceptance and attempt ledger Keep one row per required cell, with every attempt linked. A pass on another profile/environment is historical evidence, not this row's pass. | Gate | Exact cell/environment | Required observation | Candidate identity | Attempts | Current verdict | Remaining action/owner | | --- | --- | --- | --- | --- | --- | --- | | Normal task delivery | `` | `` | `` | `` | `` | `` | Keep deferred capabilities in the release contract, outside the denominator. Keep cleanup failures visible even when task assertions passed. Never calculate the denominator by counting only attempted or successful cells. Report totals explicitly: ` passed, failed, unattempted, setup-blocked of `. Record whether each failed attempt reached its intended boundary; a startup failure did not exercise Stop. Example candidate record: ```yaml candidate: application_commit: <40-character SHA> runner_source_commit: shipping_source_dirty: false profile_version: profile_digest: provider_package_version: wrapper_and_patch_digests: dependency_lock_digest: daemon_and_provider_pack_digests: public_package_digests: image_digest: environment: platform_proof: model: mode_and_reasoning: product_fixture_commit: protocol_case_revision: catalog_or_definition_digest: grader_revision: credentials: spending_bound: shareable_evidence: sensitive_evidence_store: durable_resume_record: published_review_head: shipping_base_and_dependencies: ``` ## 4. Failure and retry decision ```markdown ### — - User outcome and target boundary: - Exact candidate / cell / environment: - Expected observation: - Actual observation and first divergence: - Was the target boundary reached? - Was required concurrency observed (pending input, attached child at finish)? - Did the observer capture native order, or only delayed projection/persistence? - Relevant native request/tool/turn identity (redacted where necessary): - Original grade and retained evidence: - Primary class: product / model-provider / grading-evidence / infrastructure - Supported cause, confidence, and alternative explanations: - Cleanup result and remaining resource obligations: - Measured cost / estimate / unknown / budget reservation: Correction: Cheap discriminating proof: Retry decision: Evidence impact: ``` ## 5. Active work ledger | Handle | Kind | Owner | Candidate/cell | Started | Next useful observation/deadline | Budget reserved | Cleanup | | --- | --- | --- | --- | --- | --- | --- | --- | | `` | `` | `` | `` | `