Skip to main content

pp-conductor

Every Conductor Cloud API primitive, plus bounded session orchestration that handles asynchronous lifecycle races. Trigger phrases: `launch this in Conductor`, `monitor this Conductor session`, `steer the Conductor agent`, `run this task in Conductor Cloud`, `show recent Conductor work`.

معلومات المصدر

المستودع
mvanhorn/printing-press-library
آخر نشاط في المصدر
٦ أغسطس ٢٠٢٦ في ٠٧:٣٧
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١٬٩١٨
التفرعات
٥٧٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
100 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
pp-conductor
description
Every Conductor Cloud API primitive, plus bounded session orchestration that handles asynchronous lifecycle races. Trigger phrases: `launch this in Conductor`, `monitor this Conductor session`, `steer the Conductor agent`, `run this task in Conductor Cloud`, `show recent Conductor work`.
author
Cole Grolmus
license
Apache-2.0
argument-hint
<command> [args] | install cli|mcp
allowed-tools
Read Bash
metadata
{"openclaw":{"requires":{"bins":"[Truncated]"},"install":["[Truncated]"]}}
# Conductor Cloud — Printing Press CLI ## Prerequisites: Install the CLI This skill drives the `conductor-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first: 1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows: ```bash npx -y @mvanhorn/printing-press-library install conductor --cli-only ``` 2. Verify: `conductor-pp-cli --version` 3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill. If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.5 or newer). This installs into `$GOPATH/bin` (default `$HOME/go/bin`), so add that directory to `$PATH` instead: ```bash go install github.com/mvanhorn/printing-press-library/library/developer-tools/conductor/cmd/conductor-pp-cli@latest ``` If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds. Use `launch`, `monitor`, `steer`, and `run` to control coding-agent work without relying on the desktop app. The CLI treats status changes, transcript cursors, cancellation, and timeouts as one lifecycle instead of unrelated API calls. ## When to Use This CLI Use this CLI for Conductor Cloud project, workspace, session, message, and transcript operations. Prefer the workflow commands when a task spans several API calls or depends on asynchronous status. Do not use it to read Linear issues; ENG-526 owns that integration. ## Anti-triggers Do not use this CLI for: - Reading or updating Linear issues - Merging pull requests or deploying code - Running local Conductor desktop-only workflows ## Unique Capabilities These capabilities aren't available in any other tool for this API. ### Bounded agent orchestration - **`launch`** — Create a workspace and first session, send a brief, and return the Conductor deep link. _Use this when an agent needs a new isolated Conductor workspace and task in one call._ ```bash conductor-pp-cli launch --repository-url https://github.com/example/acme --branch main --harness codex --model gpt-5.4 --effort high --brief-file issue.md --agent ``` - **`run`** — Launch, monitor, and collect the final transcript and deep link with explicit timeout rules. _Use this when the caller needs a complete Conductor task receipt, not just a launched workspace._ ```bash conductor-pp-cli run --repository-url https://github.com/example/acme --branch main --harness codex --model gpt-5.4 --effort high --brief-file issue.md --timeout 30m --agent ``` - **`plan-implement`** — Keep a planner or reviewer session separate from the implementation session in one workspace. _Use this when implementation should start from an explicit plan without mixing planner and coder context._ ```bash conductor-pp-cli plan-implement --repository-url https://github.com/example/acme --branch main --planner-agent claude --implementer-agent codex --brief-file issue.md --agent ``` ### Safe lifecycle control - **`monitor`** — Poll a session until real completion while streaming only new transcript events. _Use this instead of treating one idle response as proof that a queued task finished._ ```bash conductor-pp-cli monitor sess_123 --timeout 30m --interval 5s --dry-run --agent ``` - **`steer`** — Send follow-up guidance to an existing Conductor session with a clear delivery receipt. _Use this to correct or refine active work without creating another session._ ```bash conductor-pp-cli steer sess_123 --message 'Run the focused tests before changing the schema' --dry-run --agent ``` ### Transcript operations - **`daily-report`** — Return recent Conductor session rows and mechanical activity totals from transcript search. _Use this for a compact, deterministic activity feed that another agent can analyze._ ```bash conductor-pp-cli daily-report --since 24h --limit 50 --agent ``` ## Command Reference **me** — Manage me - `conductor-pp-cli me` — Get authenticated identity. **messages** — Manage messages - `conductor-pp-cli messages <messageId>` — Get a message. **projects** — Manage projects - `conductor-pp-cli projects get` — Get a project. - `conductor-pp-cli projects list` — List projects. **roundhouse-public-sql** — Manage roundhouse public sql - `conductor-pp-cli roundhouse-public-sql` — Runs a single read-only SQL SELECT statement over your organization's session transcripts and returns the matching rows. **sessions** — Manage sessions - `conductor-pp-cli sessions create` — Creates a session in an existing workspace. - `conductor-pp-cli sessions get` — Get a session. **workspaces** — Manage workspaces - `conductor-pp-cli workspaces create` — Creates a cloud workspace and first session - `conductor-pp-cli workspaces get` — Get a workspace. ### Finding the right command When you know what you want to do but not which command does it, ask the CLI directly: ```bash conductor-pp-cli which "<capability in your own words>" ``` `which` resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code `0` means at least one match; exit code `2` means no confident match — fall back to `--help` or use a narrower query. ## Recipes ### Monitor an existing session ```bash conductor-pp-cli monitor sess_123 --timeout 30m --interval 5s --agent ``` Streams incremental events and returns only after the task has demonstrably started and later completed. ### Send steering guidance ```bash conductor-pp-cli steer sess_123 --message 'Keep the change scoped to the parser' --agent ``` Adds guidance to the current session without creating a second workspace. ### Review recent work ```bash conductor-pp-cli daily-report --since 24h --limit 50 --agent ``` Returns mechanical session activity for downstream review or reporting. ## Auth Setup Set `CONDUCTOR_API_KEY` to a Conductor Cloud API key. The CLI sends it only as a bearer token to `api.conductor.build` and never prints it. Run `conductor-pp-cli doctor` to verify setup. ## Agent Mode Add `--agent` to any command. Expands to: `--json --compact --no-input --no-color --yes`. - **Pipeable** — JSON on stdout, errors on stderr - **Filterable** — `--select` keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs: ```bash conductor-pp-cli me --agent --select id,name,status ``` - **Previewable** — `--dry-run` shows the request without sending - **Offline-friendly** — sync/search commands can use the local SQLite store when available - **Non-interactive** — never prompts, every input is a flag - **Explicit retries** — use `--idempotent` only when an already-existing create should count as success ### Response envelope Commands that read from the local store or the API wrap output in a provenance envelope: ```json { "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."}, "results": <data> } ``` Parse `.results` for data and `.meta.source` to know whether it's live or local. A human-readable `N results (live)` summary is printed to stderr only when stdout is a terminal AND no machine-format flag (`--json`, `--csv`, `--compact`, `--quiet`, `--plain`, `--select`) is set — piped/agent consumers and explicit-format runs get pure JSON on stdout. ## Paths and state Agents should treat the CLI's path resolver as part of the runtime contract: - Use `--home <dir>` for one invocation, or set `CONDUCTOR_HOME=<dir>` to relocate all four path kinds under one root. - Use per-kind env vars only when a specific kind must diverge: `CONDUCTOR_CONFIG_DIR`, `CONDUCTOR_DATA_DIR`, `CONDUCTOR_STATE_DIR`, `CONDUCTOR_CACHE_DIR`. - Resolution order is per-kind env var, `--home`, `CONDUCTOR_HOME`, XDG (`XDG_CONFIG_HOME`, `XDG_DATA_HOME`, `XDG_STATE_HOME`, `XDG_CACHE_HOME`), then platform defaults. - `config` contains settings like `config.toml` and profiles. `data` contains `credentials.toml`, `data.db`, cookies, and auth sidecars. `state` contains persisted queries, jobs, and `teach.log`. `cache` contains regenerable HTTP/cache files. - Stored secrets live in `credentials.toml` under the data dir. Existing legacy `config.toml` secrets are read for compatibility and leave `config.toml` on the first auth write. - Run `conductor-pp-cli doctor --fail-on warn` to surface path and credential-location warnings. `agent-context` exposes a schema v4 `paths` block for agents that need the resolved dirs. - For MCP, pass relocation through the MCP host config. The MCP binary does not inherit CLI flags: ```json { "mcpServers": { "conductor": { "command": "conductor-pp-mcp", "env": { "CONDUCTOR_HOME": "/srv/conductor" } } } } ``` Fleet precedence: an inherited per-kind env var overrides an explicit `--home` for that kind. Use `CONDUCTOR_HOME` or per-kind vars as durable fleet levers, and use `--home` only for a single invocation. Relocation is not reversible by unsetting env vars; move files manually before clearing `CONDUCTOR_HOME`, or `doctor` will not find credentials left under the former root. ## Automatic learning This CLI ships a self-capturing learning loop. The CLI does its own bookkeeping: every invocation is journaled locally, a failed flag followed by a corrected retry auto-derives a `flag_alias` candidate, and a `teach` on a query family without a playbook auto-synthesizes a `playbook_candidate` from the session's journal. Your job is judgment only: `recall` first, act on surfaced candidates, `teach` the final answer, `playbook amend` when you observe a correction. You never record failures by hand. ### Step 1: `recall` before any discovery Before list/search/drill commands on a new user question, run: ```bash conductor-pp-cli recall "<user's question>" --agent ``` The response envelope: ```json { "query": "...", "normalized": "<normalized form>", "query_entities": ["..."], "found": true | false, "match_score": 0.0, "results": [ { "resource_id": "...", "resource_type": "...", "venue": "...", "confidence": 2, "entity_match": "exact|partial|unknown", "source": "taught|preseed|pattern", "warnings": ["..."] } ], "mismatches": [ /* only when --debug-mismatches */ ], "warnings": [ /* top-level */ ], "candidates": [ { "id": 12, "class": "flag_alias | playbook_candidate", "summary": "...", "sightings": 3, "last_seen": "...", "rationale": "...", "next_action": ["<trial command>", "conductor-pp-cli learnings confirm 12"] } ], "playbook": { "query_family": "...", "playbook": { "steps": [ { "cmd": "<command with {slot} substitution>", "purpose": "..." } ], "entity_slots": ["$ENTITY"], "expected_tool_calls": 3 }, "slots_resolved": { "$ENTITY": { "token": "<live token>", "canonical": "<canonical>" } }, "notes": "<workarounds + gotchas for this query family>" }, "notes": "<duplicate surface for non-playbook callers>" } ``` Empty-store short-circuit: if the store has no learnings, playbooks, or candidates yet (recall finds nothing and `learnings list` and `learnings candidates` are both empty), skip recall for the rest of this session instead of taxing every query; resume recall-first once something has been taught. ### Step 2: decision tree Read `candidates`, `playbook`, `notes`, `results[0]`, and warnings in that order: ``` if Candidates present (warnings include "candidates_present"): -> candidates are try-then-confirm, never facts. Follow each candidate's two-step next_action verbatim: run the trial command first, then run `learnings confirm <id>` only after the trial verified the behavior. Reject a wrong candidate with `learnings reject <id>`. -> NEVER re-teach something recall surfaced as a candidate; confirm or reject that candidate instead of teaching a duplicate. -> candidates ride alongside playbooks and resource hits, not instead of them; continue with the branches below after acting on them. if Playbook present: -> READ Playbook.notes verbatim FIRST (workarounds + gotchas the CLI surface doesn't expose) -> replay Playbook.steps in order, substituting Playbook.slots_resolved entries for the entity slot tokens. If a step's slot is unresolved, fall back to discovery for that step only. -> the Playbook's expected_tool_calls is a budget; if you find yourself running materially more, record the divergence via `conductor-pp-cli playbook amend` at end-of-session. elif Notes present (no Playbook): -> read Notes verbatim before any discovery step; they carry known gotchas for this query family even when no structured choreography exists yet. elif Found AND Results[0].EntityMatch == "exact" AND Results[0].Confidence >= 2: -> skip discovery; fetch live data for Results[*].ResourceID in parallel elif Found AND Results[0].EntityMatch == "partial": -> candidate hint, NOT a hit; read the resource title to validate before trusting elif (any row in Mismatches[] when --debug-mismatches was passed): -> treat as cold start; the stored learning is for a different entity (different canonical resolved from query_entities) else: // Found == false, no playbook, no notes -> cold start; run discovery normally; teach the answer afterward (Step 4). If the family has no playbook yet, that teach auto-synthesizes a playbook candidate from this session's journal - you do not need to record one by hand. ``` Playbook and Notes are orthogonal to the per-resource path. A recall response can carry both a Playbook AND a `Results[]` hit - use both: the Playbook tells you which choreography to run; the resource hits short-circuit specific steps. Default to skipping `mismatches`; pass `--debug-mismatches` only when investigating cold-start surprises. Candidate judgment details: `learnings confirm <id>` prints the candidate's full payload before materializing it - check that the printed payload matches the behavior you verified. `learnings reject <id>` tombstones the derivation signature so the same candidate does not resurface. The envelope carries only the few candidates worth acting on now; `conductor-pp-cli learnings candidates` lists the full open set. Graceful degradation: if `learnings confirm` is an unknown command, you are driving an older binary - ignore the candidates guidance and follow the rest of the protocol. ### Step 3: always read `warnings` - `low_confidence`: row exists at `confidence<2`. Treat as a hint, not a skip-discovery hit. - `resource_not_in_store`: the local store doesn't have the resource the learning points at. The match validator couldn't classify entities — direct-fetch and re-evaluate. - `cross_alias_match` (per-result): the row was taught under a different alias and matched the live query's canonical via `entity_lookups` (e.g., a "USA" teach satisfying a "United States" recall). Trust the resource_id. - `similar_shape_different_entity:<canonical>` (top-level): a structurally matching row exists but its canonical entity differs from the live query's. Treated as cold start; the warning carries the conflicting canonical as a hint, but the row is NOT promoted into Results. - `ambiguous_alias` (top-level): a single query entity resolved to multiple canonicals (e.g., "Cards" → Arizona Cardinals + St. Louis Cardinals). Surface the ambiguity from context before committing to a resource.
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub