Skip to main content
opentrain todos manages the same Project To-dos list employers and AI trainers see in the product. Every fan-out command previews by default and writes only with explicit confirmation. The complete Project To-dos and selective-coaching command tree requires CLI 0.14.0 or later. Hosted Native Forms visual proof requires 0.23.0 or later:
The configured account must have the Project To-dos agent surface enabled. A full-access key supplies project_todos:read and project_todos:write, but it does not bypass that account gate; AGENT_SURFACE_DISABLED means the account needs enablement, not another token rotation.

Read and report

List output includes the flat item catalog, per-person progress, and a pre-pagination summary. Personal emails never appear; people are shown as contract IDs with masked names.

Create and assign (preview first)

Running without --confirm-live is a no-write preview: it prints the exact masked recipients and count, future-hire semantics, projected due/blocking behavior, duplicate candidates, warnings — and, for broad audiences, the preflight receipt token with its expiry.
  • --audience is always required; there is no default.
  • SELECTED takes repeatable --contract-id flags or --contract-ids a,b; duplicate or non-SELECTED stray IDs are rejected before any network call.
  • Broad live runs require --yes and --preflight-receipt from the preview you reviewed, so a roster or payload change since that preview fails server-side instead of assigning people you never saw.
  • --allow-duplicate overrides the exact-duplicate refusal.
  • todos assign-item and todos archive-item follow the same preview-then-confirm shape; the archive preview prints exactly how many open assignments will close.

Review and transitions

These single-assignment commands execute directly — no --confirm-live step. Pass a stable --idempotency-key so retries converge (one is generated when omitted). --expected-submitted-at is the stale-review guard: a resubmission in the meantime rejects the decision.

Enable, disable, and the raw escape hatch

todos manage cannot bypass safety: create_item, assign, and archive_item bodies are redirected to the focused commands, and fan-out actions without an explicit audience fail before any request is sent.

Quizzes

Quiz assignment requires an explicit stable --idempotency-key so a retry cannot create duplicate worker-visible obligations; broad quiz audiences require --yes plus --preflight-receipt from the reviewed preview. remediate plan validates the whole full-retake batch without writing. remediate apply executes exactly those planned rows, bound to --plan-checksum, and rejects live drift with 409 PLAN_STALE.

Visually verify a quiz without creating an attempt

For a published quiz, replace --draft-revision with --form-version-id. OpenTrain renders the real worker Native Forms runner in Chromium and returns PNG, ARIA, diagnostics, and provenance evidence. The CLI checksum-verifies the complete evidence set before publishing it under --out, so an agent can inspect the screenshots without a browser login. Preview is strictly isolated: it creates no attempt, answer, grade, result release, Project To-do transition, notification, or completion record. The worker-safe projection never contains answer keys. You can select another question with session select, or mint a short-lived observe-only link for a signed-in employer with links create. See Hosted quiz visual proof.

Selective coaching

Selective coaching returns only chosen questions with threaded feedback. It is separate from a full-quiz retake.
Every coaching mutation requires both --confirm-live and a caller-supplied stable --idempotency-key; the CLI never invents one for this family. Use coaching image upload for the safe one-shot feedback-image workflow, or image prepare|finalize|status|download for lower-level transfer control. Signed storage grants are never printed. Worker self-service commands use a worker-minted key and only the token owner’s assignment:
These commands require project_todos:respond. Employer keys — including Full access — cannot call them, and worker output never includes answer keys, scoring rules, other workers, or private employer drafts. See the selective-coaching API reference for every lane and the concept page for the safety model.