From Convex
A user just submitted (or upvoted into the queue) a feature request via the Chef/ship panel in a quickstart 'wow-shell' app. This monitor polls `npx convex run featureRequests:listPending` (state==="requested", newest first) every ~12s and notifies only on request `_id`s that were NOT present in the previous poll — so each notification is a genuinely NEW request, not a replay. It exists because the wow-shell's feature-request form is the user's primary way to drive iteration after launch, and there is otherwise no push: without this the agent has to keep a turn open polling the bootstrap's feature-requests.log, and a request submitted after the agent yields sits unhandled until the user asks 'hello?'. When this fires, the playbook (same as STEP B of the quickstart skill): (1) read the full request with `npx convex run featureRequests:listPending` (or the panel) — you get its title, description, and _id; (2) `npx convex run featureRequests:setState '{"id":"<_id>","state":"inProgress"}'` so the user's badge updates; (3) build the feature (write the component file first, then wire it into app/page.tsx; never touch app/_chef-panel.tsx or the <ChefPanel/> mount); (4) `featureRequests:setState ... "completed"`. Do requests one at a time in order — the badge transitions are the user's feedback loop. Self-guards: it silently no-ops unless `.env.local` has `CONVEX_DEPLOYMENT` set and `npx` is on PATH, and `listPending` returning nothing/erroring (e.g. a non-wow-shell project that lacks the function) produces no output, so it is safe in any cwd. Unlike the OCC-insights monitor it intentionally DOES run against anonymous/local deployments, because the featureRequests table exists there too. The first poll after arming is saved as a baseline without notifying, so the requests already queued when you start don't all fire at once.
Trust and execution context for this monitor
Runs unsandboxed at plugin trust level
This command is executed by Claude Code with the same permissions as the plugin itself. Inspect the command below before installing this plugin.
Substitutions like ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${user_config.*}, and ${ENV_VAR} are NOT resolved by ClaudePluginHub — they appear here verbatim and are expanded only at runtime.
Shell command executed when the monitor triggers
sh -c 'SNAP="${TMPDIR:-/tmp}/convex-fr-$(pwd | cksum | cut -d" " -f1).snap"; while true; do if [ -f .env.local ] && grep -q "^CONVEX_DEPLOYMENT=" .env.local 2>/dev/null && command -v npx >/dev/null 2>&1; then NEW="${TMPDIR:-/tmp}/convex-fr-$$.new"; if npx convex run featureRequests:listPending >"$NEW" 2>/dev/null && [ -s "$NEW" ]; then grep "\"_id\":" "$NEW" 2>/dev/null | sort >"$NEW.f"; if [ -f "$SNAP" ]; then comm -13 "$SNAP" "$NEW.f" 2>/dev/null; fi; mv "$NEW.f" "$SNAP" 2>/dev/null; fi; rm -f "$NEW" "$NEW.f" 2>/dev/null; fi; sleep 12; done'Trigger condition and source location
npx claudepluginhub get-convex/convex-backend-skill --plugin convexStreams new sideshow comments from your browser to Claude as they are posted.
Watches for test failures and lint errors after TDD skill is invoked
Auto-arm session monitoring for harness-mem health, advisor/reviewer state, and Plans.md drift.