Skip to content
Development
Skill

/provider-setup

Reports which delegation CLIs are installed and authenticated, installs missing ones, and stores the result. Use before delegating or when a provider errors.

From plugin
claude-night-market
343200 skills60 agents162 commands1 MCP

Claude Code

$ npx -y skills add athola/claude-night-market --skill provider-setup --agent claude-code

SKILL.md

provider-setup.SKILL.md
name: provider-setup
description: Reports which delegation CLIs are installed and authenticated, installs missing ones, and stores the result. Use before delegating or when a provider errors.
alwaysApply: false
category: delegation-infrastructure
tags:
- setup
- providers
- authentication
- installation
dependencies:
- delegation-core

Provider Setup

Intent

An operator should be able to ask what this machine can delegate to, get a truthful answer, install what is missing, and have that answer remembered. Before this skill existed, an unconfigured provider surfaced only as a failed delegation, and every call re-derived the same facts by spawning up to sixteen subprocesses.

When To Use

  • Before the first delegation on a new machine
  • When a provider errors out and it is unclear whether the cause is

the binary, the credential, or the model

  • When deciding which provider to name in a delegation request

When NOT To Use

  • Choosing between two providers that are both ready

(`Skill(conjure:delegation-core)` routes)

  • Debugging a provider's output rather than its availability

What it reports

`scripts/delegation_setup.py` probes each registered service and prints a table: binary, version, installed, authenticated, and the fix for each unhealthy row.

python3 scripts/delegation_setup.py --status
python3 scripts/delegation_setup.py --doctor
python3 scripts/delegation_setup.py --available

`--available` is the short answer: the providers confirmed ready to take work right now.

Installing

Installs come from the provenance map in `delegation_executor`, which is the only source of install commands. A binary with no recorded provenance raises instead of falling back to a guess, because #655 shipped a service naming a binary that an unaffiliated package publishes.

python3 scripts/delegation_setup.py --install gemini
python3 scripts/delegation_setup.py --all

Every install asks first. Declining is a recorded outcome, not a failure, so `--all` on a machine where two of eight CLIs are wanted still exits 0.

What is remembered, and what is not

`plugins/conjure/scripts/provider_ledger.py` writes `~/.claude/hooks/delegation/provider-state.json`. What it stores is asymmetric on purpose:

| Fact | Cached | Why | |------|--------|-----| | Installed, version | Yes, under a 6-hour TTL | Cheap to re-derive, stable between runs | | Confirmed credential | As a timestamp, never a boolean | A token expires without touching the binary | | A recorded failure | Clears the confirmation immediately | A stale success must not outlive the credential |

A provider whose credentials live inside its CLI reports `auth_checked: false`, and that never becomes a confirmation. "We did not look" and "it works" are different claims, and the table keeps them apart.

The file is a cache. A truncated or unreadable ledger loads as empty and costs one round of probes.

What this does not change

Routing still probes live. `Delegator.verify_service` spawns the version and auth probes on the delegation path as it always did, and the ledger does not short-circuit it.

That is a deliberate boundary, not an unfinished edge. Reading a cached success into the router would send work to a provider whose token expired since the probe, and reading a cached failure into the router would disable a provider for the rest of the TTL after one transient error. The ledger answers an operator's question, "what is set up on this machine", where a six-hour-old answer is useful and a wrong one costs a re-run. The router answers "can this call succeed now", where a wrong answer costs the call.

Wiring the ledger into `verify_service` needs a failure taxonomy that separates a transient refusal from a revoked credential. That does not exist yet.

Exit Criteria

  • [ ] `python3 scripts/delegation_setup.py --status` prints one row

per registered service with its installed and authenticated state

  • [ ] `--available` names only providers that are installed, carry a

confirmed credential, are inside the TTL, and have no recorded failure

  • [ ] `~/.claude/hooks/delegation/provider-state.json` exists after a

probe and parses as JSON with `"version": 1`

  • [ ] An install request for a binary with no provenance entry raises

`UnverifiedBinaryError` instead of running a guessed command

  • [ ] A recorded failure clears any standing `auth_confirmed_at`, so a

provider that starts refusing work leaves `--available`

  • [ ] A corrupt ledger file loads as empty rather than raising

Related Skills

  • `Skill(conjure:delegation-core)`: the routing this setup feeds
  • `Skill(leyline:service-registry)`: health checks for external

services generally

Read more
@athola
Ships withclaude-night-market

A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.

343200 skills60 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
343
Star history of athola/claude-night-market on GitHub, a chart by star-history.com

Other skills on claude-night-market.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about provider-setup.

Which coding agents can use provider-setup?
provider-setup installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.