PRDuck — agent runbook 1. Context PRDuck profiles how you work with coding agents — Claude Code, Codex CLI, Cursor, opencode, Google Antigravity, and Copilot CLI. Transcripts are read locally. Credentials and personal paths are scrubbed. Only extracted components (prompts, plans, select tool results) upload; raw transcripts never leave the machine. Scoring is deterministic arithmetic (rates, latencies, recurrence counts, correlations) across eight dimensions — correction taxonomy, constraint articulation, approval behavior, session dynamics, ask structure, calibration, rhythm, intent encoding. LLM classification runs only on genuinely ambiguous excerpts. Nothing you upload is used to train a model. Output is a per-user report with findings, pasteable prompting rules, and a cited narrative, behind sign-in at /reports. 2. Consent gate Ask your human before uploading; never upload unprompted. 3. Detect Look for sessions in: - ~/.claude/projects - ~/.codex/sessions - ~/.local/share/opencode/opencode.db - ~/.local/share/opencode/storage - ~/.cursor/chats - ~/.cursor/projects - ~/.gemini/antigravity-ide/brain - ~/.gemini/antigravity-cli/brain - ~/.gemini/antigravity/brain - ~/.copilot/session-state Env overrides: $CLAUDE_CONFIG_DIR, $CODEX_HOME, $XDG_DATA_HOME, $ANTIGRAVITY_HOME, $COPILOT_HOME. 4. Upload The installer downloads a standalone binary built for this machine's OS and architecture (macOS and Linux, x64 and arm64). It verifies the binary's sha512 against the npm registry before running it, and caches it under ~/.prduck/bin so later runs re-use it with no download. It needs only curl, tar, and a shell — no Node or any other runtime. On an unsupported platform, or if the binary will not start, it falls back to the npx path automatically. On Windows, run the installer from Git Bash — WSL cannot see your Windows-side transcripts. Preferred (global — every session on this machine; more sessions give PRDuck more to process and a better-calibrated profile): curl -fsSL https://prduck.tryproduck.com/upload.sh | bash -s -- --all Scoped (one project — pass the directory the agent was launched from, usually the repo root): curl -fsSL https://prduck.tryproduck.com/upload.sh | bash -s -- --dir Without the installer (CI, or a machine that already has Node): npx -y prduck@latest upload --all npx -y prduck@latest upload --dir Requires Node >= 24. Scope rules: - Sessions are attributed to the directory the agent was launched from, usually the repo root. --dir matches that path or below it and never widens, so passing a subdirectory of the repo matches nothing. - `upload` with no scope flag asks Global vs this repo on a terminal, and fails on a non-interactive run. Always pass --all or --dir so you never block on the prompt. 5. Auth First interactive run opens a browser device handshake; the human completes it. Credentials cache in ~/.prduck/credentials.json. Non-interactive runs need PRDUCK_TOKEN and an explicit --all or --dir. 6. Report After upload, send the human to https://prduck.tryproduck.com/reports (sign-in gated) to open their report.