literature-review
<search_backend>
This skill owns the command-line search backends in scripts/. They are not separate skills. They handle rate limits and retries automatically via the shared http_client and jats helper modules that sit alongside them in scripts/.
Invocation & workspace (read first): Invoke each script by its absolute path under this skill's base directory (shown to you above as "Base directory for this skill") — e.g. uv run <skill-dir>/scripts/openalex_cli.py …. Never cd into the skill directory. Stay in the directory where the user invoked the skill and anchor the review workspace there with an absolute path: compute WS="$(pwd)/review/{slug}" once at step 1 and pass $WS as --workspace everywhere. Relative review/{slug} resolves against the wrong directory and pollutes the installed plugin. In the command examples below, scripts/… is shorthand for <skill-dir>/scripts/….
Prerequisites:
uvmust be installed. Verify withuv --version. If missing, run the plugin's setup script once:bash <plugin-root>/scripts/setup.sh. The setup script installsuv, prompts (optionally) for an OpenAlex API key, and warms the dependency cache. Fallback if setup is unreachable:curl -LsSf https://astral.sh/uv/install.sh | sh && export PATH="$HOME/.local/bin:$PATH".OPENALEX_API_KEY(optional, recommended). Without it, OpenAlex runs in the unauthenticated polite pool — $0.01/day budget, ~10filterqueries or 1--searchper day before throttling. With a free key, $1/day budget at ~10 req/s. The key lives in~/.env. Never read, print,cat,echo, or otherwise inspect~/.env— credentials must stay out of the agent's context. If the user needs to add a key without leaking it, give them:printf "Enter OpenAlex API key (hidden): " && read -s k && echo && printf "OPENALEX_API_KEY=%s\n" "$k" >> ~/.env && unset k && echo "Saved.".