operator-pass-onboarding · git:20260524.e7c2e4f · 2026-05-24 · sha256 ba5301bfd415dd40
operator-pass-onboarding git:20260524.e7c2e4fA
Immutable. This exact content is served forever at /api/v1/blob/ba5301bfd415dd40.
---
name: operator-pass-onboarding
description: First-run interactive setup for the Operator Pass API skill pack. Validates the OPERATOR_PASS_API_KEY env var, fetches the live tool catalog, captures the operator's preferred tools + won't-call list + failure handling preferences + quota awareness. Writes brand-config.json + SOUL.md. Loaded automatically when either file is missing.
user-invocable: false
allowed-tools:
- Read
- Write
- Bash
- WebFetch
---
# Operator Pass Onboarding — first-run setup
10 minutes of setup that connects this pack to the real JMC API,
captures your usage preferences, and writes the config files all
downstream sub-skills load.
## Activation
Loaded automatically by `operator-pass` on missing brand-config.json
or SOUL.md.
Also user-invocable: "Set up Operator Pass", "Configure operator-pass API".
## Workflow
### Step 1 — API key check
```
First — do you have an Operator Pass subscription?
This pack calls api.jaymountconsulting.com — without a key, it
can't do anything. Subscribe at jaymountconsulting.com/operator-pass
(Founder rate $2,400/yr through July 16 2026, 100 seats).
Once you have a key, set it as an env var:
export OPERATOR_PASS_API_KEY="op_live_..."
Then come back and run onboarding.
```
If env var is missing, **stop here** with the subscribe link. Don't
continue setup.
### Step 2 — Validate the key
```bash
curl -s https://api.jaymountconsulting.com/v1/me \
-H "Authorization: Bearer $OPERATOR_PASS_API_KEY"
```
If 401/403, surface: "Key invalid or expired. Renew at
jaymountconsulting.com/operator-pass." Stop.
If 200, parse `{ user_id, plan, rate_limit_remaining }` and continue.
### Step 3 — Fetch the live tool catalog
```bash
curl -s https://api.jaymountconsulting.com/v1/tools \
-H "Authorization: Bearer $OPERATOR_PASS_API_KEY"
```
Show the operator the catalog grouped by category:
```
# Operator Pass API tools — <N> available
## Outbound
cold-email-linter Per-email score + line-level rewrite
linkedin-post-critic Critique + 3 register-varied rewrites
...
## Foundation
evp-generator Schwartz-tier EVP variants
...
(<full live catalog>)
```
### Step 4 — Preferred tools
```
Which tools will you call most often? (Mark all that apply — these
get priority in routing suggestions.)
The skill defaults the most-popular operator picks. Override as needed:
- cold_email_validation: cold-email-linter
- evp_generation: evp-generator
- competitive_research: competitive-teardown
- geo_audit: geo-visibility
- pricing_lab: pricing-page-lab
```
Save to `brand-config.preferred_tools`.
### Step 5 — Won't-call list
```
Any tools you specifically don't want auto-invoked? (Common reasons:
expensive ones, long-running, schema you haven't locked.)
```
Save to `SOUL.md`.
### Step 6 — Failure handling preferences
```
How should the skill handle failures?
429 (rate-limited): Retry once (default) / Retry twice / Surface immediately
402 (sub-expired): Surface + stop (always — non-overridable)
401 (key invalid): Surface + stop (always — non-overridable)
5xx (API error): Log + skip / Retry once / Surface immediately
Network timeout: Retry once / Skip
```
Save to `brand-config.api` + `SOUL.md`.
### Step 7 — Quota awareness
```
Operator Pass tiers have monthly quotas. Want a warning when you're
running low?
Warn at: 20% remaining (default) / 10% / 30% / Never warn
Where to log usage:
Default: .operator-pass-cache/usage.jsonl (per-call timestamp + tool + result)
```
Save to `brand-config.usage`.
### Step 8 — Cache settings
```
Tool catalog and schemas don't change often. Cache them to save quota.
Catalog TTL: 300s (default) / 60s / 3600s / no-cache
Schema TTL: 3600s (default) / 600s / 86400s / no-cache
Cache dir: .operator-pass-cache (default — gitignored)
```
Save to `brand-config.cache`.
### Step 9 — Write files + smoke test
```
✓ brand-config.json — API config + preferred tools + cache + usage
✓ SOUL.md — won't-call list + failure handling preferences
Quick smoke test:
> /operator-pass list
Should return the live tool catalog (cached for 5min).
```
### Step 10 — Refresh
```
Re-run onboarding if:
- Your API key rotates
- You upgrade / downgrade tier
- New tools ship to the catalog
Refresh: `/operator-pass onboarding refresh`
```