一键导入
manifest-automation
Create and update manifest files using advanced web automation with Playwright, intelligent retry logic, and smart merge capabilities
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create and update manifest files using advanced web automation with Playwright, intelligent retry logic, and smart merge capabilities
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Internationalization management tool for syncing and translating language files
Configure Claude Code to use alternative AI model providers by setting up custom API endpoints and authentication. Use this skill when users want to switch from default Anthropic models to providers like Z.AI, OpenRouter, or other custom endpoints with compatible APIs.
Fetch benchmark performance data from 6 leaderboard websites using Playwright MCP and update model manifests with the latest scores. Supports SWE-bench, TerminalBench, SciCode, LiveCodeBench, MMMU, MMMU Pro, and WebDevArena benchmarks.
| name | manifest-automation |
| description | Create and update manifest files using advanced web automation with Playwright, intelligent retry logic, and smart merge capabilities |
Automate the creation and updating of manifest files for AI coding tools using advanced browser automation, web search, and intelligent field-level retry logic.
This skill extends beyond the existing manifest-creator by adding:
Create a new manifest from scratch:
# CLI tool
node .claude/skills/manifest-automation/scripts/automate.mjs create cli cursor-cli https://cursor.com/cli
# Extension
node .claude/skills/manifest-automation/scripts/automate.mjs create extension copilot https://github.com/features/copilot
# Model
node .claude/skills/manifest-automation/scripts/automate.mjs create model claude-opus https://anthropic.com/claude
# Provider
node .claude/skills/manifest-automation/scripts/automate.mjs create provider openrouter https://openrouter.ai
# IDE
node .claude/skills/manifest-automation/scripts/automate.mjs create ide cursor https://cursor.com
# Vendor
node .claude/skills/manifest-automation/scripts/automate.mjs create vendor anthropic https://anthropic.com
Update an existing manifest with fresh data:
# Update existing CLI manifest
node .claude/skills/manifest-automation/scripts/automate.mjs update cli cursor-cli https://cursor.com/cli
# Update extension (URL optional if already in manifest)
node .claude/skills/manifest-automation/scripts/automate.mjs update extension copilot
Load Schema & Workflow
Extract Information
Handle Failures Gracefully
Validate & Save
data/github-stars.jsonnpm run generate to regenerate TypeScript data filesLoad Existing Manifest
Extract Fresh Data
Smart Merge
Generate Change Report
Playwright MCP (mcp__playwright__browser_*):
WebSearch:
WebFetch (fallback):
Wikipedia:
LinkedIn Company Pages:
communityUrls.linkedinPattern 1: Navigate → Snapshot → Extract
1. mcp__playwright__browser_navigate(url)
2. mcp__playwright__browser_snapshot()
3. Extract data from snapshot elements
Pattern 2: Interactive Navigation
1. Take initial snapshot
2. mcp__playwright__browser_click(element)
3. mcp__playwright__browser_wait_for(text)
4. Take new snapshot and extract
Pattern 3: Form Interaction
1. mcp__playwright__browser_fill_form(fields)
2. Click submit button
3. Extract results from response
Each field gets up to 3 extraction attempts before falling back to TODO comment:
Attempt 1: Direct extraction from primary source
Attempt 2: Alternative sources or search
Attempt 3: Final fallback sources
After 3 failures: Add TODO comment with reason
Installation Commands:
Pricing:
Community URLs:
{
"communityUrls": {
"discord": null, // TODO: Could not auto-discover after 3 attempts. Not found in footer or search results.
"twitter": "https://x.com/product"
}
}
Always replaced with freshly discovered values:
latestVersion - Always fetch latestdescription - From official sourcewebsiteUrl - Official URLdocsUrl - Documentation URLtokenPricing - Model pricing (changes frequently)size, contextWindow, maxOutput - Model specsNever updated (user-curated):
id - Core identifiername - Display nameverified - Manual verification statusi18n - User translationsrelatedProducts - Manually curated relationshipsAdd new items, keep existing:
communityUrls - Add newly discovered social linksplatformUrls - Add new platform integrationssupportedIdes - Add new IDE supportplatforms - Add new OS supportpricing - Add new tiers, preserve existingRequire manual review:
license - Only update if from authoritative source (GitHub)vendor - Review name changes carefully📊 Manifest Automation Report
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Status: DRAFT (3 fields incomplete)
✅ Successfully Extracted (42 fields)
❌ Failed Extraction (3 fields):
1. communityUrls.discord (3 attempts)
Reason: Not found in website footer or WebSearch
2. pricing[2].value (3 attempts)
Reason: Enterprise pricing behind contact form
3. platforms[1].installCommand (3 attempts)
Reason: Windows installation docs incomplete
⚠️ Cross-Reference Validation:
✓ Wikipedia: Company description verified
✓ LinkedIn: Company metadata matches
⚠️ Description length mismatch: Website (180 chars) vs LinkedIn (220 chars)
🌐 i18n Consistency Warnings (UPDATE mode only):
⚠️ English description updated - review i18n translations
⚠️ i18n.zh-Hans may be outdated (last updated: previous description)
⚠️ i18n.de may be outdated (last updated: previous description)
→ Add TODO comments to i18n fields requiring manual review
📝 Next Steps:
1. Review manifest file: manifests/clis/cursor-cli.json
2. Manually fill TODO-marked fields if information available
3. Add i18n translations (zh-Hans, de, ko)
4. Update verified field once data confirmed accurate
5. Run validation: npm run test:validate
Note: Vendor manifest, github-stars.json, and TypeScript files already updated.
| Feature | manifest-creator | manifest-automation |
|---|---|---|
| Tools | WebFetch only | Playwright MCP + WebSearch + WebFetch |
| Modes | CREATE only | CREATE + UPDATE |
| Retry Logic | Manual/ask user | Automatic 3-attempt per field |
| Dynamic Content | Limited | Full Playwright support |
| Merge Logic | N/A | Smart field categorization |
| Error Handling | Stop and ask | TODO + draft + report |
| Workflows | Generic 7-step | Type-optimized phases |
| Community Discovery | Basic | Advanced WebSearch |
| Pricing Extraction | Static pages | Dynamic calculators |
| Marketplace Support | Limited | Full automation (VS Code, JetBrains) |
mcp__playwright__browser_wait_for with specific textAfter running this skill, expect:
manifests/<type>s/<name>.jsonmanifests/$schemas/<type>.schema.jsonnpm run test:validateAfter creating or updating a manifest, you MUST update the data/github-stars.json file:
The github-stars.json file tracks GitHub star counts for all manifests. When you create or update a manifest:
null (stars not yet fetched)Use the updateGithubStarsEntry() function from github-stars-updater.mjs:
import { updateGithubStarsEntry } from './lib/github-stars-updater.mjs'
// After creating a new manifest
const result = updateGithubStarsEntry('cli', 'cursor-cli', { isNew: true })
// After updating an existing manifest
const result = updateGithubStarsEntry('extension', 'claude-code', { isNew: false })
You can also use the CLI directly:
# Add new entry
node .claude/skills/manifest-automation/scripts/lib/github-stars-updater.mjs add cli cursor-cli
# Update existing entry
node .claude/skills/manifest-automation/scripts/lib/github-stars-updater.mjs update extension claude-code
# Remove entry
node .claude/skills/manifest-automation/scripts/lib/github-stars-updater.mjs remove ide windsurf
The updater will:
github-stars.json file<category>["<id>"] = nullFor a new CLI manifest cursor-cli:
{
"clis": {
"claude-code-cli": 43.5,
"cursor-cli": null, // ← newly added
"kode": 3.6
}
}
The automate.mjs script exports the necessary information for you to call the updater:
// After workflow completes and manifest is saved:
import {
updateGithubStarsEntry,
manifestType,
manifestName,
operationMode
} from './automate.mjs'
updateGithubStarsEntry(manifestType, manifestName, { isNew: operationMode === 'create' })
i18n object with localized content (zh-Hans, de, ko)verified to true if data is confirmed accuraterelatedProducts arraynpm run test:validateNote: Vendor manifest and github-stars.json are automatically handled during creation.
IMPORTANT: When creating or updating manifests with i18n content:
Default Language (English):
description, name)i18n objectMulti-Language Support:
zh-Hans), German (de)'en' | 'zh-Hans' - always include de and support extensibilityContent Synchronization:
Validation Checks:
Structure Example:
{
"name": "Example Product",
"description": "This is the default English description",
"i18n": {
"zh-Hans": {
"name": "示例产品",
"description": "这是默认的英文描述"
},
"de": {
"name": "Beispielprodukt",
"description": "Dies ist die englische Standardbeschreibung"
}
}
}
In UPDATE mode:
// TODO: Update i18n translations to match new English content