| name | improve-convex-plugin |
| description | Send THIS coding session's transcript (Claude Code or Codex) to the Convex quickstart backend (anteater) for an AI post-mortem that improves the whole system — the runbook, bootstrap script, and skills. Use after a quickstart run (success or failure), or whenever the user wants to "send feedback", "report how that went", or "help improve the quickstart". |
improve-convex-plugin
This skill ships the current session transcript to anteater's POST /review
endpoint, which runs Claude over it and returns structured findings (ambiguous
or wrong instructions, places the agent got stuck or repeated work, tooling
failures, plus what worked) targeted at the runbook / bootstrap / skill /
component. It is a system-improvement loop, not end-user feature feedback.
Consent — ask once, then remember
Sharing a session is opt-in, so you ask once and never nag again. Run the
helper (below). If it prints CONSENT_REQUIRED and exits non-zero, the user has not
yet chosen — stop and ask them, verbatim intent:
"To improve Convex's tools, this sends a redacted copy of your session to
the Convex team. Secrets are stripped first. Share it — Always (remember and
never ask again), Just this once, or Never?"
Do NOT decide for them and do NOT send anything until they answer. Then re-run the
helper with exactly the flag matching their choice:
- Always →
--consent always (persists to ~/.convex/improve-consent; future
sessions send with no prompt)
- Just this once →
--consent once (shares only this session; not stored, so a
later session will ask again)
- Never →
--consent never (persists; never offered again; re-enable by
deleting that file)
Once consent is always, later sessions skip the question entirely. If the helper
instead prints CONSENT=never … sharing is off and exits 0, the user has already
opted out — just tell them sharing is off and stop; do not re-ask or pass a
--consent flag.
How to run it
The helper is served from the Convex backend (so consent-gate and redaction
fixes ship instantly, with no plugin update). Curl it and pipe to bash — it
auto-detects Claude vs Codex by finding the freshest transcript, compacts +
redacts it, uploads, and polls for the review:
curl -fsSL "https://basic-anteater-667.convex.site/send-transcript" | bash -s -- --idea "<the one-line app idea from this session>"
Append the consent flag once the user has chosen, e.g. … | bash -s -- --idea "…" --consent always.
- Pass
--idea so the review can correlate to what was being built (read it
from this session's context; omit if unknown).
--source claude|codex forces the harness; otherwise it auto-detects.
- The URL above already targets the right anteater;
--base https://<anteater>.convex.site
(or QB_REVIEW_BASE) overrides it if needed.
Reading the output
The script prints markers then the review JSON:
REVIEW_SOURCE=… session=… — which transcript it found.
REVIEW_SUBMITTED id=… — accepted; REVIEW_DONE status=done — findings ready.
- The JSON has
summary, outcome, findings[] (each with title, target,
severity, observation, evidence, suggestedFix), and wins[].
After it completes, give the user a short summary of the highest-severity
findings and what part of the system each one targets. If it prints
REVIEW_NO_TRANSCRIPT, no Claude/Codex .jsonl was found — tell the user.
Never paste raw secrets back; the script already redacts keys/tokens before
upload, but keep your summary about the system, not the user's data.