Skip to content

Promote Pi and OpenCode from preview to core harness tier — with live release evidence, then docs #21

Description

@NetDevAutomate

Problem

A docs-vs-code congruence review (2026-09-14) found that OpenCode, pi and Grok Build are not confirmed as production-supported. The code agrees and is honest about it:

  • packages/studyloop/src/studyloop/harnesses.py:23-25CORE_HARNESSES = ("kiro", "codex", "claude"), PREVIEW_HARNESSES = ("opencode", "pi", "grok"); the Harness(...) records for opencode/pi/grok carry production=False (lines 40–44).
  • docs/agent-install.md:13 — "complete integrations for OpenCode, pi, and Grok Build … shown as preview harnesses until their live release checks pass on the target environment."

The owner's target state is five core harnesses — Kiro CLI, Claude Code, Codex, Pi and OpenCode — fully wired in and documented as such. Grok Build stays preview until separately evidenced.

What "fully wired in" must mean (checkable, per harness)

For each of pi and opencode, produce the same evidence the three core harnesses already have:

  1. Install pathstudyloop install agents --tool <h> writes the persona/agent definition and registers both MCP servers (session-db, studyloop) in the harness's own config schema; studyloop doctor reports the harness healthy.
  2. Session launchstudyloop study --agent <h> (PTY) and, where the harness supports it, the ACP path start a session, deliver the canonical persona, and the one-session authority / reconnect / cleanup behaviour matches the core three (tests/test_web_session_start_pty.py, ..._acp.py parity).
  3. Session export — the harness's transcript exporter lands rows in sessions.db with the correct source (pi, opencode), and session-export --<h>-only works (agent_session_tools exporters + tests).
  4. Live release check — the harness-matrix live lane (tests/acceptance/, wave 2a B2) passes for the harness on a real install, and the receipt is committed under docs/architecture/plan-integration/receipts/ or the acceptance evidence bundle (wave 2b B4).
  5. Study-plan-architect modestudyloop study --mode plan-architect --agent <h> resolves the persona (OpenCode already has a global study-plan-architect agent; confirm pi).

Then, and only then

  • Move pi and opencode into CORE_HARNESSES; set production=True; RELEASE_HARNESSES unchanged.
  • Update docs/agent-install.md §"Supported in the initial pre-release" (five core; Grok Build remains preview), the capability matrix, AGENTS.md's harness sentence, the installer's printed language, and openspec/specs/agent-adapters/spec.md + harness-session-memory/spec.md.
  • Pin with a test that the documented core list equals CORE_HARNESSES (there is a docs-contract test pattern in packages/agent-session-tools/tests/test_docs_semantic_layer_contract.py to copy).

Definition of done

  • For pi and opencode: items 1–5 above each have a passing test id or a committed receipt named in this issue.
  • harnesses.py core tuple = ("kiro", "codex", "claude", "pi", "opencode"); grok remains preview.
  • Docs/spec/installer language updated in the same change; a contract test pins docs ↔ code.
  • Full suite green; just lint; just typecheck.
  • Council review (GPT Astra, Grok 4.6, + one best-for-purpose seat) of the evidence before the tier flip is merged.

Notes

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentImplementation-ready specification with settled requirements and test seams

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions