Skip to main content

scope-api

Query and control the Scope platform API for analyzing benchmark data, managing runs/requests, skills, agents, reports, and insights. Use when the user asks about SCOPE data, wants to trigger runs, check status, generate reports, or interact with the SCOPE platform programmatically.

Informações da origem

Repositório
microsoft/scope
Última atividade na origem
23 de setembro de 2026 às 12:43
Idioma detectado do SKILL.md
inglês
Estrelas
54
Forks
26

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
scope-api
description
Query and control the Scope platform API for analyzing benchmark data, managing runs/requests, skills, agents, reports, and insights. Use when the user asks about SCOPE data, wants to trigger runs, check status, generate reports, or interact with the SCOPE platform programmatically.
## Scope API Skill The Scope platform benchmarks AI coding agents. This skill explains how to query and control it. ### Base URL ``` http://localhost:${API_PORT} ``` The `API_PORT` variable is defined in the project `.env` file (default: `3116`). Always read it from the environment or `.env` before making calls. ### Authentication For authenticated calls, pass the existing **IdP access token** unchanged: ``` -H "Authorization: Bearer $SCOPE_TOKEN" ``` Use the caller-provided `SCOPE_TOKEN` when available; never print/log the token or put it in a URL. There is no Scope session JWT, `/auth/login`, or token exchange. The API verifies signature/claims before consulting its user-access cache. **Enrollment is explicit.** Already-enrolled bearer callers remain compatible. For a new identity, intentionally call this once before other authenticated calls: ```bash curl --fail-with-body -sS \ -X POST \ -H "Authorization: Bearer $SCOPE_TOKEN" \ -H "Cache-Control: no-store" \ "http://localhost:$API_PORT/api/v1/users/me" ``` Only POST `/api/v1/users/me` may JIT-create the user or update profile, `lastLoginAt`, and eligible bootstrap-admin promotion. This POST has side effects: **never prefetch or poll it**, and do not silently invoke it as an ordinary lookup retry. `lastLoginAt` records this explicit upsert, not proof of an interactive login. For normal identity checks use GET `/api/v1/users/me`; Invalid/repeated/structured login values return `400`; HEAD never enrolls. Plain `/me` and other authenticated routes resolve an existing active Scope UUID/role from Redis; miss/unavailability reads Mongo by exact `(idp, tid, oid)` and warms the cache, without JIT. Missing users return `403 user_not_enrolled`, disabled users `403 user_disabled`, reserved/invalid principals `401`; required Mongo/JWKS outages return `503`, unexpected errors `500`. Do not interpret a cache miss as a denial or turn a verified-identity denial into anonymous access. The fixed/non-sliding cache TTL (`AUTH_USER_CACHE_TTL_SECONDS`, default 300 seconds) means DB-only role/disable changes may not be visible until expiry. Public endpoints and existing no-token/auth-disabled anonymous rollout remain supported; this is not full route RBAC. See [the auth contract](../../../docs/architecture/auth-rbac.md). ### Before Making API Calls **Always fetch the OpenAPI spec first** to understand available endpoints, required parameters, and response schemas: ```bash curl -s http://localhost:$API_PORT/openapi.json ``` Parse it with `jq` to find the relevant endpoint and its schema before constructing your API call. For example: ```bash # Find endpoints matching a keyword curl -s http://localhost:$API_PORT/openapi.json | jq '.paths | keys[] | select(contains("requests"))' # Get schema for a specific endpoint curl -s http://localhost:$API_PORT/openapi.json | jq '.paths["/api/v1/requests"]' ``` ### Key Endpoint Groups - **System**: `/health`, `/ready`, `/about`, `/api/v1/version` - **Identity**: GET `/api/v1/users/me` (read-only); POST `/api/v1/users/me` (explicit enrollment/login refresh) - **Requests & Runs**: `/api/v1/requests/*` (create, cancel, retry, pause, resume, bulk ops, logs, HAR, video, snapshots, tool-calls) - **Skills**: `/api/v1/skills/*` (discover, search, external, resolve, revisions) - **Agents**: `/api/v1/agents/*` (CRUD, versions) - **Reports & Insights**: `/api/v1/reports/*`, `/api/v1/insights/*` (trigger, bulk, upvote/downvote) - **Criteria & Prompt Features**: `/api/v1/criteria/*`, `/api/v1/prompt-features/*` (MDP, graph, seed, generate, extract) - **Task Prompts**: `/api/v1/task-prompts/*` (generate, extract features) - **Models**: `/api/v1/models/*` (list, sync) - **Feature Flags**: `/api/v1/feature-flags` ### Usage Pattern When the user asks about SCOPE data or wants to control SCOPE: 1. **Fetch the OpenAPI spec** from `http://localhost:$API_PORT/openapi.json` 2. **Find the relevant endpoint** and inspect its parameters/schemas 3. **Make the API call** with `curl` and parse results with `jq` 4. For complex queries, combine multiple API calls ### Example Workflow ```bash # 1. Fetch spec and find the endpoint you need curl -s http://localhost:$API_PORT/openapi.json | jq '.paths["/api/v1/requests"].get' # 2. Make the call curl -s http://localhost:$API_PORT/api/v1/requests | jq '.[:5]' # 3. Drill into details curl -s http://localhost:$API_PORT/api/v1/requests/{id} | jq . ```
Ver no GitHub