Files
DottaandPaperclip 56e09cd19f docs: add native Runner integration playbook (#16846)
## Thinking Path

> - Paperclip is the open source app people use to manage AI agents for
work.
> - Native Runner connects those agents to harnesses through provider
drivers.
> - Adding a harness crosses protocol, setup, lifecycle, packaging, and
product boundaries.
> - Existing guidance does not provide one complete procedure for this
work.
> - This pull request adds a native Runner skill, detailed playbook, and
working templates.
> - Contributors can use them to define a release, implement the
integration, and verify the delivered result.

## Linked Issues or Issue Description

**Issue type**

Missing documentation.

**Where is the issue?**

Native Runner contribution guidance in `doc/DEVELOPING.md` and
`packages/paperclip-runner/README.md`.

**What's wrong?**

Contributors must reconstruct the requirements, protocol mapping, normal
setup, lifecycle rules, packaging, and acceptance process when they add
a harness. The legacy direct-adapter recipe covers a different execution
path.

**Suggested fix**

Add a self-contained native Runner procedure. Include capability
research, a finite release contract, implementation boundaries,
reproducible tests, normal installation, and release evidence. State
each lesson directly so contributors need no private chats, tasks, or
evidence archives. The duplicate search found no existing playbook PR.

## What Changed

- Add `create-runner-adapter` for new native Runner harness
integrations.
- Add a detailed playbook based on the Pi, Cursor, and Copilot
integration lessons.
- Cover model and instruction admission, connection setup, rich events,
durable interactions, recovery, cancellation, packaging, and Product E2E
acceptance.
- Add templates for scope, capabilities, attempts, failures, jobs, and
release handoff.
- Link the procedure from the development guide and Runner README.
- Keep legacy adapters as a compatibility boundary.

## Verification

- `git diff origin/master --check` passed.
- `node scripts/validate-doc-links.mjs` passed from
`packages/paperclip-runner` and checked 53 documentation files.
- All 71 Markdown links in the new reusable files resolve to repository
paths or public provider documentation.
- Skill YAML, naming, description, and scaffold checks passed.
- A private-reference audit passed for the reusable skill, playbook, and
templates.
- The legacy direct-adapter skill matches the base version.
- Full local runtime checks were attempted with pnpm 9.15.4. `pnpm -r
typecheck` stopped because Node type definitions are missing. `pnpm
test:run` and `pnpm build` stopped because `cli/node_modules/tsx` is
missing. This checkout has no installed dependencies. These commands did
not establish runtime test or build results.
- Full remote CI passed on commit
`88b4fc4832d95807da1f5e48029a183b3dc62b6c`: build, typecheck, general
and serialized server tests, Runner checks, browser tests, and the
canary dry run. [CI
run](https://github.com/paperclipai/paperclip/actions/runs/39262297681).
- All 55 applicable checks passed. The two Storybook checks were skipped
for this change.
- Greptile gave the current commit 5/5. There are no review comments or
unresolved threads.

## Risks

Low risk. The procedure can drift as the Runner contracts and test entry
points change. It records its source baseline and tells contributors to
inspect current declarations. Historical lessons describe failure
patterns; they do not certify current binaries.

## Model Used

OpenAI Codex with `gpt-6-astra` and `gpt-6.1-sol`, both using xhigh
reasoning. Context-window sizes were not exposed. The models used
repository search, terminal tools, and file edits.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used, including available version and
capability details
- [x] I have checked ROADMAP.md and confirmed this documentation does
not duplicate planned core work
- [x] I have searched GitHub for duplicate or related PRs
- [x] I have described the issue in this PR using the documentation
issue template fields
- [x] I have not referenced internal or instance-local Paperclip issues
or links
- [x] My branch name describes the change and contains no internal
ticket or instance details
- [x] I have run the relevant local documentation checks; they pass.
Blocked runtime checks are recorded above
- [x] I have considered tests for this documentation-only change and
validated its links and skill metadata
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented the risks above
- [x] All Paperclip CI gates are green
- [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before merge

Co-authored-by: Paperclip <[email protected]>
2026-10-19 08:50:44 -05:00

5.6 KiB
Raw Permalink Blame History

name, description
name description
create-runner-adapter Add a new harness/provider integration to native Paperclip Runner, from requirements and protocol research through implementation, packaging, and real end-to-end acceptance. Use for new Runner adapters; legacy direct adapter authoring and migration are outside this skill.

Add a native Runner adapter

Use this skill to add a harness to the new, native Paperclip Runner execution system. Here, adapter means the provider translation and launch integration behind a Runner harness driver. Preserve existing direct adapters and historical records as compatibility constraints; do not route this work through their package-authoring recipe or migrate agents as a side effect.

The complete procedure is the Runner integration playbook. Use its working templates for the release contract, capability inventory, acceptance ledger, and failure record. These repository files contain the decision rules and test criteria themselves. No private chat, task, prior campaign, or separate private repository is required. Source links identify code to inspect, not evidence that a new integration passed.

If this skill was installed separately, locate the target checkout from the current workspace or git rev-parse --show-toplevel. Verify it contains packages/paperclip-runner and tests/runner-e2e; resolve doc/ paths there. Follow that checkout's AGENTS.md and scoped rules before editing.

Work sequence

  1. Define a finite release. Read playbook sections 1–3. Record the user outcome, first environment, supported platforms, setup/auth, required capabilities, selected acceptance model, spending limits, and delivery target. Keep the complete capability inventory separate from the release requirements.
  2. Investigate the actual harness. Use section 4. Inspect versioned official docs, native source or shipped code, real protocol traffic, and account/model behavior. Track every capability through native harness, wrapper, Runner, controller, and UI. Distinguish documented, observed, and qualified support.
  3. Prove one complete slice. Use sections 5–7. Establish exact model and instruction admission, scoped tools and credentials, then complete one real Paperclip task with independently verified output and physical cleanup. Exercise ordinary connect/save/reopen/Test/reconnect in the selected environment; check database constraints and account/model routing as well as driver execution.
  4. Complete the promised behavior. Use sections 8–10. Preserve rich events, durable human decisions, callback identity, recovery, cancellation, and terminal settlement. Keep provider-specific semantics in provider code.
  5. Prove delivery. Use section 11. Exercise clean installed packages and the agreed execution environment; verify the complete runtime closure and immutable image identity. A source checkout or startup probe is insufficient delivery proof.
  6. Qualify the release. Use sections 12–15. Begin with deterministic and real dependency checks, then run exact Product E2E cells through browser/server/DB/ Runner/provider. Section 12 includes a repository-contained test-authoring path. Freeze the candidate and retain original failures, cost coverage, and cleanup.
  7. Hand off an operable result. Use section 16 and the templates. Account for repository checks, exact passing evidence, remaining limits, installation, operation, and rollback. Keep merge, publish, deploy, and canary claims distinct.

Rules that must survive implementation pressure

  • A qualification model is a repeatable test choice, not a product allowlist. Verify the caller's exact model at the native boundary before the first prompt.
  • Instruction transport success is insufficient: bind exact content on create and load, reject missing acknowledgments, and verify resulting behavior.
  • A native question, semantic question, plan, and permission request are distinct contracts. Preserve identity and prove delivery; queued does not mean answered.
  • Same conversation does not establish same process or recoverable pending input. Stop must reach the owned native work and prevent late callbacks from reviving it.
  • A screenshot, model-authored success claim, or green unit suite cannot replace independent file/artifact/state/cleanup checks through the promised user path.
  • Diagnose the first divergence across arguments, transport, files, persistence, and grader before another paid attempt. Preserve the original grade.
  • Changes after a pass require an evidence-impact decision. Old results retain their original runtime, model, environment, and fixture identity.
  • Prove spontaneous native-child loss and bounded shutdown, not only cleanup invoked by a test. Preserve durable expiry for each supported request kind.
  • Establish the concurrency being graded: attached work must overlap finish; a Stop case must reach real pending work before its observation window closes.
  • Keep campaign evidence, budget history, and candidate/publication state durable across interruptions. Reconcile shipping dependencies before final qualification.
  • Preserve legacy behavior through focused regression checks. Legacy authoring, runtime conversion, and migration are not part of adding a native integration.

Keep new guidance shareable: put the complete lesson and reproducible acceptance condition in tracked documentation. Do not substitute personal session links, private task URLs, inaccessible evidence archives, or workstation-specific paths.