skills-experimental/api-limits/SKILL.md
API limits constants. Image limits (5MB base64, 2000px). PDF limits (20MB, 100 pages). Media limits (100 per request). Client-side validation. Use when checking rate limits, managing API quotas, or preventing throttling.
npx skillsauth add bianhaifeng789-hue/openclaw-config api-limitsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
API 限制常量,用于 client-side validation。
场景:
Claude Code 方案:apiLimits.ts + Client validation OpenClaw 飞书适配:API 限制 + Validation
// Image Limits
const API_IMAGE_MAX_BASE64_SIZE = 5 * 1024 * 1024 // 5 MB
const IMAGE_TARGET_RAW_SIZE = (API_IMAGE_MAX_BASE64_SIZE * 3) / 4 // 3.75 MB
const IMAGE_MAX_WIDTH = 2000
const IMAGE_MAX_HEIGHT = 2000
// PDF Limits
const PDF_TARGET_RAW_SIZE = 20 * 1024 * 1024 // 20 MB
const API_PDF_MAX_PAGES = 100
const PDF_EXTRACT_SIZE_THRESHOLD = 3 * 1024 * 1024 // 3 MB
const PDF_MAX_EXTRACT_SIZE = 100 * 1024 * 1024 // 100 MB
const PDF_MAX_PAGES_PER_READ = 20
const PDF_AT_MENTION_INLINE_THRESHOLD = 10
// Media Limits
const API_MAX_MEDIA_PER_REQUEST = 100
function validateImage(file: ImageFile): ValidationResult {
const stats = getFsImplementation().statSync(file.path)
// Check base64 size
if (stats.size > IMAGE_TARGET_RAW_SIZE) {
return {
valid: false,
error: `Image exceeds ${formatFileSize(IMAGE_TARGET_RAW_SIZE)} limit`
}
}
// Check dimensions
const dimensions = getImageDimensions(file.path)
if (dimensions.width > IMAGE_MAX_WIDTH || dimensions.height > IMAGE_MAX_HEIGHT) {
// Resize needed
return {
valid: false,
needsResize: true,
maxWidth: IMAGE_MAX_WIDTH,
maxHeight: IMAGE_MAX_HEIGHT
}
}
return { valid: true }
}
function validatePDF(file: PDFFile): ValidationResult {
const stats = getFsImplementation().statSync(file.path)
// Check size
if (stats.size > PDF_TARGET_RAW_SIZE) {
return {
valid: false,
error: `PDF exceeds ${formatFileSize(PDF_TARGET_RAW_SIZE)} limit`
}
}
// Check pages
const pageCount = getPDFPageCount(file.path)
if (pageCount > API_PDF_MAX_PAGES) {
return {
valid: false,
error: `PDF exceeds ${API_PDF_MAX_PAGES} pages limit`
}
}
return { valid: true }
}
function validateMediaCount(images: Image[], pdfs: PDF[]): ValidationResult {
const totalCount = images.length + pdfs.length
if (totalCount > API_MAX_MEDIA_PER_REQUEST) {
return {
valid: false,
error: `Media count exceeds ${API_MAX_MEDIA_PER_REQUEST} limit`
}
}
return { valid: true }
}
{
"config": {"wide_screen_mode": true},
"elements": [
{
"tag": "div",
"text": {
"tag": "lark_md",
"content": "**📏 API Limits Validation**\n\n---\n\n**文件验证**:\n\n| 类型 | 限制 | 当前 | 状态 |\n|------|------|------|------|\n| **Image size** | 3.75 MB | 2.5 MB | ✓ |\n| **Image dimensions** | 2000px | 1500px | ✓ |\n| **PDF size** | 20 MB | 5 MB | ✓ |\n| **PDF pages** | 100 | 25 | ✓ |\n| **Media count** | 100 | 10 | ✓ |\n\n---\n\n**验证结果**:✓ All passed\n\n---\n\n**API Limits**:\n• Image base64: 5 MB\n• Image raw: 3.75 MB\n• PDF raw: 20 MB\n• PDF pages: 100\n• Media per request: 100"
}
}
]
}
// memory/api-limits-state.json
{
"validations": [],
"stats": {
"totalValidations": 0,
"passed": 0,
"failed": 0,
"resized": 0
},
"limits": {
"imageMaxBase64": 5242880,
"imageTargetRaw": 3932160,
"imageMaxWidth": 2000,
"imageMaxHeight": 2000,
"pdfTargetRaw": 20971520,
"pdfMaxPages": 100,
"pdfExtractThreshold": 3145728,
"mediaMaxPerRequest": 100
},
"lastUpdate": "2026-04-12T00:43:00Z",
"notes": "API Limits Skill 创建完成。等待 media 触发。"
}
| Claude Code | OpenClaw 飞书场景 | |-------------|------------------| | apiLimits.ts | Skill + Constants | | API_IMAGE_MAX_BASE64_SIZE | 5MB | | IMAGE_TARGET_RAW_SIZE | 3.75MB | | PDF_TARGET_RAW_SIZE | 20MB | | API_MAX_MEDIA_PER_REQUEST | 100 |
此 Skill 在上传文件时自动验证。
business
IAA 日报飞书输出能力。 支持把固定 CSV 模板一键转换成: - 中文运营结论 - 飞书卡片 JSON - 飞书发送载荷 Use when: - 需要把 IAA 日报直接发到飞书 - 需要从 CSV 一键生成运营日报
data-ai
IAA日报分析模型 功能: - 渠道日报自动分析 - 小时级+日级ROI联动判断 - 按地区输出加量/降量/停投建议 - 按产品类型输出阈值 - 自动识别利润区/观察区/止损区 Use when: - 分析每天投放数据 - 生成运营日报结论 - 判断是否加量/降量/停投 - 对比美加澳/日韩表现 Keywords: - 日报模型, 投放日报, 加量, 降量, 停投, ROI日报, 分地区分析
data-ai
IAA固定日报分析模板 功能: - 固定字段模板(可直接贴每天数据) - 自动输出总盘结论 - 自动输出美加澳/日韩结论 - 自动给出加量/降量/停投建议 - 适配文件修复/清理两类产品 Use when: - 需要固定日报格式 - 每天复盘渠道表现 - 给运营团队出统一结论 Keywords: - 固定模板, 日报模板, ROI模板, IAA日报, 运营模板
development
# HyperlinkPool Pattern Skill HyperlinkPool Pattern - HyperlinkPool class + strings array + stringMap + Index 0 no hyperlink + intern(hyperlink) + get(id) + undefined handling + 5-minute reset + OSC8 hyperlink interning。 ## 功能概述 从Claude Code的ink/screen.ts提取的HyperlinkPool模式,用于OpenClaw的OSC8超链接池管理。 ## 核心机制 ### HyperlinkPool Class ```typescript export class HyperlinkPool { private strings: string[] = [''] // Index 0 = no hyperlink private stringMap = new Map<string, number>() // strings