用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/majiayu000/claude-skill-registry --skill openapi-operations命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 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-operations |
| description | OpenAPI operation rules 11-13 for naming, pagination, and responses |
Operation naming, pagination, and response patterns
# ✅ CORRECT
operationId: getAccessToken # Full name (globally unique)
x-method-name: getToken # Method name WITHOUT tag prefix
operationId: listAccessTokens # Full name (globally unique)
x-method-name: listTokens # Method name WITHOUT tag prefix
# ❌ FORBIDDEN
operationId: describeItem # NEVER use 'describe'
x-method-name: getAccessToken # NO! Remove tag name from method
# ❌ FORBIDDEN - Tag name in method name
x-method-name: getAccessToken # NO! 'Access' is the tag name
x-method-name: listUserItems # NO! 'User' is the tag name
Rule: x-method-name must NOT contain the tag name, but operationId should be fully descriptive for global uniqueness.
When organizing list operations, distinguish between sub-resource lists and global lists:
When listing sub-resources of a parent, use the parent resource tag with listSubResources method name:
# ✅ CORRECT - Listing roles for a specific user (sub-resource)
/organizations/{orgId}/users/{userId}/roles:
get:
tags:
- user # Parent resource tag
operationId: listUserRoles
x-method-name: listRoles # Called as userApi.listRoles(orgId, userId)
When listing resources globally (not under a parent), use the resource tag with list method name:
# ✅ CORRECT - Listing all roles globally
/organizations/{orgId}/roles:
get:
tags:
- role # Resource itself
operationId: listRoles
x-method-name: list # Called as roleApi.list(orgId)
Summary:
tags: [user], x-method-name: listRoles → userApi.listRoles()tags: [role], x-method-name: list → roleApi.list()Why: This pattern ensures that:
list() methodslist method without conflictsWhen you have multiple operations for the SAME resource, the operationId must use the SAME resource name consistently:
# ✅ CORRECT - Consistent use of "Organization" (full word)
paths:
/organizations/{organizationId}:
get:
operationId: getOrganization
/organizations:
get:
operationId: listOrganizations
# ❌ WRONG - Inconsistent naming (getOrganization vs listOrgs)
paths:
/organizations/{organizationId}:
get:
operationId: getOrganization # Uses "Organization"
/organizations:
get:
operationId: listOrgs # Uses "Orgs" - INCONSISTENT!
# ❌ WRONG - Inconsistent naming (getUser vs listAccounts)
paths:
/users/{userId}:
get:
operationId: getUser # Uses "User"
/users:
get:
operationId: listAccounts # Uses "Accounts" - INCONSISTENT!
Rationale: Consistency in naming makes the API predictable and easier to understand. If one operation uses "Organization", ALL operations for that resource must use "Organization" (not "Org", not "Orgs", not "Organisation").
getItem → Summary: "Retrieve an item"listItems → Summary: "Retrieve items"🚨 CRITICAL: ALL list* operations MUST be paginated using PagedResults
For TypeScript PagedResults generation, operation MUST have ALL 4 conditions:
# ✅ CORRECT - Complete pagination with components
components:
parameters:
pageSizeParam:
$ref: './node_modules/@auditmation/types-core/schema/params.yml#/pageSizeParam'
pageNumberParam:
$ref: './node_modules/@auditmation/types-core/schema/params.yml#/pageNumberParam'
headers:
linksHeader:
$ref: './node_modules/@auditmation/types-core/schema/headers.yml#/linksHeader'
paths:
/users:
get:
operationId: listUsers
parameters:
- $ref: '#/components/parameters/pageSizeParam'
- $ref: '#/components/parameters/pageNumberParam'
responses:
'200':
description: Successful response
headers:
links:
$ref: '#/components/headers/linksHeader'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
# ❌ WRONG - Direct node_modules refs (should use components)
/users:
get:
operationId: listUsers
IMPORTANT: NEVER reference node_modules directly in paths. Always define in components/parameters and components/headers first, then reference the component.
Define in components first, then reference:
components:
parameters:
pageSizeParam:
$ref: './node_modules/@auditmation/types-core/schema/params.yml#/pageSizeParam'
pageNumberParam:
$ref: './node_modules/@auditmation/types-core/schema/params.yml#/pageNumberParam'
pageTokenParam:
$ref: './node_modules/@auditmation/types-core/schema/params.yml#/pageTokenParam'
Option A: Page Number (offset-based)
parameters:
- $ref: '#/components/parameters/pageSizeParam'
- $ref: '#/components/parameters/pageNumberParam'
Option B: Page Token (cursor-based)
parameters:
- $ref: '#/components/parameters/pageSizeParam'
- $ref: '#/components/parameters/pageTokenParam'
Handling API-specific pagination:
cursor → Map to pageToken in componentsoffset → Calculate pageNumber (offset / pageSize)NEVER use custom pagination parameters directly:
since, offset, limit, cursor - Map to core paramsDefine in components first:
components:
headers:
linksHeader:
$ref: './node_modules/@auditmation/types-core/schema/headers.yml#/linksHeader'
Then reference in operations:
responses:
'200':
headers:
links:
$ref: '#/components/headers/linksHeader'
WHY: PagedResults provides type-safe pagination with next/previous links
NEVER add 40x or 50x error responses - Framework handles ALL errors
# ✅ CORRECT
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Resource'
# ❌ WRONG - Error responses included
responses:
'200':
description: Success
'401':
description: Unauthorized # NO! Framework handles this
'404':
description: Not found # NO! Framework handles this
'500':
description: Server error # NO! Framework handles this
WHY: Framework's error handling automatically converts HTTP errors to typed exceptions. Adding error responses to the spec:
| Operation Type | operationId Pattern | x-method-name | Summary |
|---|---|---|---|
| Get single | get{Resource} | Without tag | "Retrieve a {resource}" |
| List multiple | list{Resources} | Without tag | "Retrieve {resources}" |
| Create | create{Resource} | Without tag | "Create a {resource}" |
| Update | update{Resource} | Without tag | "Update a {resource}" |
| Delete | delete{Resource} | Without tag | "Delete a {resource}" |
| Search | search{Resources} | Without tag | "Search {resources}" |
NEVER: describe{Resource} - This is forbidden!
Before finalizing operations:
These operation rules ensure consistency and framework compatibility across all modules.