用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/majiayu000/claude-skill-registry --skill openapi-foundations命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
LLM token logprobs and calibration. Per-decision confidence, ECE, Brier, reliability diagrams, low-confidence triage.
Analyze LLM token logprobs and calibration. Use for per-decision confidence, ECE, Brier scores, reliability diagrams, and low-confidence triage.
回顾最近 N 天的 Claude Code 使用记录——扫描原始会话数据,按主题分组汇总"我都做了什么",并从个人操作系统视角输出模式、风险与增删建议。当用户说 /recap、"看看我这几天做了什么"、"回顾一下我最近的会话"、"这两天我用 claude 干了啥"、"活动回顾" 时使用。
基于 SOC 职业分类
正在显示 SKILL.md
| name | openapi-foundations |
| description | OpenAPI core rules 1-10 covering servers, naming, parameters, and basic patterns |
🚨 CRITICAL RULES - Immediate Task Failure if Violated
These are the foundational rules that EVERY agent working with API specifications must know.
# ❌ WRONG
servers:
- url: https://api.example.com
security:
- bearerAuth: []
# ✅ CORRECT - Clean root level
openapi: 3.0.0
info:
title: Service API
Rationale: Module determines these dynamically from connection profile.
# ✅ CORRECT - Consistent naming
/users
/users/{userId}
/users/{userId}/profile
# ❌ WRONG - Inconsistent
/users
/user/{id} # Mixed: users vs user
/users/{userId}/userProfile # Redundant: user appears twice
IMPORTANT: Use meaningful, standard resource names regardless of vendor API naming.
# ✅ CORRECT - Meaningful resource names
/organizations/{organizationId}/users
/organizations/{organizationId}/groups/{groupId}/members
# ❌ WRONG - Don't copy vendor abbreviations
/orgs/{orgId}/users # NO! Use full word "organizations"
/o/{oid}/u/{uid} # NO! Use descriptive names
URL Pattern Standard - Parent Context Rule:
Use the appropriate path pattern based on whether the resource needs a parent context:
# ✅ CORRECT - Resource with NO parent context needed
/accessToken # Standalone resource (current user's token)
/profile # Standalone resource (current user's profile)
/settings # Standalone resource (account settings)
# ✅ CORRECT - Resource WITH parent context that needs ID
/organizations/{organizationId}/users # Users need organization context
/users/{userId}/repositories/{repositoryId} # Repository needs user context
/projects/{projectId}/tasks/{taskId} # Task needs project context
# ❌ WRONG - Unnecessary parent path when no ID needed
/auth/accessToken # NO! Just use /accessToken
/users/profile # NO! Just use /profile (if it's current user)
Decision Rule:
/resource: When the resource is standalone OR operates on "current" context (current user, current token, etc.)/parent/{parentId}/resource: When the resource exists within a parent that must be identified by an ID parameterPattern: /resources/{resourceId}/subResources/{subResourceId} format with meaningful, descriptive names. The vendor API may use different patterns - we normalize to our standard.
If a parameter appears in 2+ operations → MUST go in components/parameters
# ✅ CORRECT
components:
parameters:
limitParam:
name: limit
in: query
schema:
type: integer
paths:
/users:
get:
parameters:
- $ref: '#/components/parameters/limitParam'
/groups:
get:
parameters:
- $ref: '#/components/parameters/limitParam'
NO EXCEPTIONS - Even if external API uses snake_case
# ✅ CORRECT
properties:
userName:
type: string
createdAt:
type: string
avatarUrl:
type: string
# ❌ WRONG - snake_case
properties:
user_name: # NO!
type: string
created_at: # NO!
type: string
Critical: Convert ALL external API snake_case properties to camelCase in schemas.
NEVER use sortBy, sortDir, sort, or variations - ALWAYS use:
# ✅ CORRECT
parameters:
- name: orderBy
schema:
type: string
- name: orderDir
schema:
type: string
enum: [asc, desc]
# ❌ WRONG
parameters:
- name: sortBy # NO! Use orderBy
- name: sortDir # NO! Use orderDir
- name: sort # NO! Use orderBy
Path parameters MUST indicate resource type
# ✅ CORRECT
/resources/{resourceId}
/items/{itemId}/subitems/{subitemId}
/users/{userId}/repositories/{repositoryId}
# ❌ WRONG - Not descriptive
/resources/{id} # Which ID?
/items/{itemId}/subitems/{id} # Confusing
When choosing the primary identifier:
id (if exists and unique)name (if unique)Always prefer id when available for operations.
Operations MUST NOT include parameters available from ConnectionProfile or ConnectionState
# ❌ FORBIDDEN - These come from connection
parameters:
- name: apiKey # NO! In ConnectionProfile
in: header
- name: token # NO! In ConnectionProfile/State
in: header
- name: baseUrl # NO! In ConnectionProfile
in: query
# ✅ CORRECT - Scope and operation-specific parameters
/organizations/{organizationId}/resources/{resourceId}:
get:
parameters:
- name: organizationId # YES! Scope parameter (connection must NOT limit scope)
in: path
- name: resourceId # YES! Operation-specific
in: path
- name: includeDetails # YES! Operation option
in: query
WHY: Connection context (apiKey, token, baseUrl) is established during connect() and managed by the client. Operations define business parameters AND scope parameters (organizationId, workspaceId, projectId, etc.) because connection must not limit operational scope.
# ✅ CORRECT
tags:
- user
- group
- account
- access
# ❌ WRONG - Capitalized or plural
tags:
- User # NO! Use lowercase
- Users # NO! Use singular
- Access # NO! Use lowercase
Before proceeding with API spec work, verify:
servers or security at root levelcomponents/parametersorderBy and orderDir{resourceId} not {id})id as primary identifier (when available)These 10 core rules apply to ALL API specification work. Violation of any rule = immediate task failure.