Skip to main content
This guide lists the exact operations behind the Agent Guide on every official surface. Most of the loop happens without you asking for it: the sync envelope directs the one guide read and names the exact delta when guidance changes. Use the operations below when you need the full document, a specific version, a proposal, or a publication.

Before you start

You need:
  • an employer account or employer team membership with access to the job;
  • jobs:read to read the guide, Playbook, and proposals;
  • jobs:write to submit or resolve proposals; and
  • a human job-manager account to publish.
These operations require CLI 0.26.0+, MCP 0.26.0+, or SDK 0.24.0+, and a deployment whose GET /api/public/v1/capabilities response reports job_operations as available. Older packages do not expose them.

The loop an agent follows

1

Let the bootstrap direct the read

Enter the job with the normal context read. The response’s sync.nextOperations ends with job_operations.agent_guide.get. Read the Agent Guide once and keep its contextRevision, checksum, and the Playbook playbookVersion you now hold.
2

Follow the delta only when it is named

On later covered calls, act on recommendation.agent_guide_changed when it appears. It names the exact fromVersion and toVersion. Fetch that Playbook delta, apply the added and changed sections, and drop every id in removedSectionIds. If the recommendation is absent, your guidance is current.
3

Respect precedence

Typed policies, workflow gates, decisions, exceptions, and the Work Catalog outrank Playbook prose. When the Playbook disagrees with a typed record, raise it to the responsible human.
4

Propose, do not publish

When guidance is missing, wrong, or outdated, submit a proposal with basePlaybookVersion equal to the current head. A human reviews it, applies it to the shared draft, and publishes.
5

Acknowledge only what you received

Checkpoint the revision the envelope actually delivered to you. Never acknowledge a revision you have not received.

CLI

manager guide get still returns the canonical typed projection alone (the Agent Guide without the Playbook). It is kept for existing clients; new work reads manager agent-guide get.

MCP

The server’s initialize response teaches this loop to every connected agent. The guide is also readable as Markdown through the resource opentrain://jobs/{jobId}/operations/agent-guide. The older opentrain://jobs/{jobId}/operations/guide resource and the opentrain_get_job_context_operating_guide tool return the canonical projection only and remain for existing clients.

SDK

Also available: getJobOperationsPlaybook, listJobOperationsPlaybookVersions, getJobOperationsPlaybookVersion, listJobOperationsPlaybookProposals, resolveJobOperationsPlaybookProposal, and publishJobOperationsPlaybook. Keyed mutations send the Idempotency-Key header for you. getJobOperationsOperatingGuide returns the canonical projection alone and is kept for existing clients.

HTTP API

All paths are relative to https://app.opentrain.ai/api/public/v1/job-operations/jobs/{jobId}. Mutations use the Idempotency-Key header. Replaying the same key with the same payload returns the original result with replayed: true; reusing a key for a different payload fails closed. Publication body fields: expectedPlaybookVersion (the current head, 0 when none), optional expectedContextRevision, document, optional publicationNote (up to 2,000 characters), optional acceptProposalIds (up to 50 open proposal ids whose exact section content lands in this version), and optional agentLabel for an agent acting under a human token. Unchanged content is refused, and every response is the closed public version, never the editor document.

Handle refusals

Agent Guide

The concept: precedence, sections and hashes, deltas and tombstones, and automatic sync.

Manage a live job

The context-first triage, claim, recheck, action, and handoff loop the guide sits inside.

CLI: Shared Job Context

The complete opentrain manager command family.

MCP: Shared Job Context

Every shared-context tool and the automatic initialize protocol.