复制安装命令
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
A model-agnostic agent-skills platform.
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
来源文件:README.md
A model-agnostic agent-skills platform. The canonical layer is harness-free by construction; Claude Code is currently the verified-native harness. Other harnesses remain engineering candidates until their native-path integration is verified; source research alone is never presented as public support.
Version semantics: the release badge is this marketplace's display version. npm packages, including the
ccpiCLI and publishable plugins, retain their own package versions; they are intentionally not expected to equal the display version. The version-surface checker governs the display surfaces without rewriting package semver.
Inside Claude Code, one command installs the whole marketplace:
/plugin marketplace add jeremylongshore/claude-code-plugins
Or use the CLI:
pnpm add -g @intentsolutionsio/ccpi
ccpi install devops-automation-pack
Browse the marketplace · Explore plugins · Download bundles
Killer Skill of the Week — no-ai-slop by Peter Yang
Strip AI slop from any draft — named-pattern edits that keep the writer's real voice
no-ai-slop does two jobs and refuses to fake a third. In Edit mode it makes the minimum effective edit — cutting throat-clearing, weak verbs, and abstract nouns while deliberately preserving the writer's cadence, bluntness, humor, and honest admissions, so a rough draft still sounds like the same person afterward. In Detect mode it names each AI-slop pattern it finds, quotes the offending line, and gives the fix in a few words — and pointedly does NOT score the draft or guess whether an AI wrote it. That restraint is the whole point: AI detectors guess; named patterns are evidence the reader can check. MIT-licensed, single focused skill, actively maintained by Peter Yang.
"AI detectors guess. Named patterns are evidence the user can check." — Peter Yang
Grade: A | Week of July 22, 2026 (W30) | View on GitHub
Previous picks: tonone, mnemos, databricks-pack, kobiton-automate, skyvern, code-cleanup, web-analytics, token-optimizer, executive-assistant-skills, skill-creator, cursor-pack, crypto-portfolio-tracker. See all at tonsofskills.com.
Every number below names the cohort it counts and the command that reproduces it — an unlabeled count is how a corpus ends up with five contradictory answers to "how many skills."
| Count | Cohort | Reproduce with |
|---|---|---|
| 442 | catalog plugins (catalog-entry cohort) | node scripts/generate-readme-toc.mjs over marketplace.extended.json |
| 3,067 | marketplace-visible skills (distinct) | node -e "import('./scripts/corpus-resolver.mjs').then(m=>console.log(m.resolveCorpus('marketplace-visible').length))" |
| 347 | agent definitions in plugins | git ls-files 'plugins/**' | grep '/agents/.*\.md' |
| 19 | plugin categories | ls -d plugins/*/ |
Across 396 published packages in the claude-code-plugins namespace. Updated daily by GitHub Actions.
| Window | All packages | Established (>30d) |
|---|---|---|
| Last 24 hours | 962 | 962 |
| Last 7 days | 2,920 | 2,916 |
| Last 30 days | 12,868 | 12,779 |
"Established" excludes packages first published within the last 30 days, so a bulk-publish event doesn't dominate the headline.
Top 10 by last 30 days:
Last refreshed 2026-08-19T03:03:05.709Z.
Five real questions, five doors — each resolves to a live, generated surface, never a hand-maintained list:
The 19 categories below link into the live marketplace. Plugin counts are the catalog-entry cohort — regenerated from marketplace.extended.json by this generator; the catalog itself lives on tonsofskills.com, never in this file (§ 6A of the platform blueprint).
| Category | Plugins | |
|---|---|---|
| 🤖 | AI & Machine Learning | 36 |
| 🎭 | AI Agents & Agency | 10 |
| 🔌 | API Development | 26 |
| 💼 | Business Tools | 6 |
| 👥 | Community | 21 |
| ₿ | Crypto & Web3 | 27 |
| 💾 | Database | 26 |
| 🎨 | Design | 2 |
| 🔧 | DevOps & Infrastructure | 36 |
| 📚 | Examples & Templates | 5 |
| 🧩 | MCP Servers | 16 |
| 📦 | Packages | 5 |
| ⚡ | Performance | 25 |
| ✅ | Productivity | 30 |
| 🎁 | SaaS Skill Packs | 106 |
| 🔐 | Security | 27 |
| ✨ | Skill Enhancers | 9 |
| 🧪 | Testing | 28 |
| 📁 | Analytics | 1 |
Four artifact classes live in this repository, distinguished on sight and never blurred — provenance is a truth requirement here, not a UX nicety:
| Class | What it is | How the reader can tell |
|---|---|---|
| Canonical skill | First-party, harness-free, the source of truth | No .source.json in its plugin directory |
| Generated adapter | A thin, machine-produced harness projection | Lives under a generated path with a "generated — do not edit" header |
| First-party package | An Intent Solutions distribution (npm, cowork zip) | @intentsolutionsio scope, IS-authored license |
| Upstream mirror | Somebody else's work, hosted mirror-by-default | .source.json present — upstream author, license, and pinned commit recorded |
Not yet certified. The certification program (tiers T0–T4 with retained, hash-matched evidence) is a later epic of the platform blueprint; until its report exists, no artifact on this surface claims a tier. This line is rendered from the absence of certification-report.json — honestly, not cosmetically.
Start with the contribution guide, then the intake and review standards every submission passes through:
External plugins are hosted mirror-by-default: the contributor's repository stays the source of truth, every mirrored source is pinned in a content lockfile, and upstream credit — author, license, resolved commit — is recorded in the mirror itself. Improvements flow by upstreaming to the author's repository, never by silently editing the mirror. The full decision record is the external-sync model.
MIT for the repository scaffolding and first-party tooling; each plugin carries its own license in its manifest, and mirrored plugins keep their upstream license verbatim.
name: algolia-upgrade-migration
description: 'Upgrade algoliasearch from v4 to v5 with breaking change detection and
codemod.
Use when upgrading SDK versions, detecting deprecations, or migrating initIndex
patterns.
Trigger: "upgrade algolia", "algolia migration v5", "algolia breaking changes",
"update algolia SDK", "algolia v4 to v5".
'
allowed-tools: Read, Write, Edit, Bash(npm:*), Bash(git:*), Bash(npx:*), Grep
version: 1.7.0
license: MIT
author: Jeremy Longshore <jeremy@intentsolutions.io>
tags:
- saas
- search
- algolia
compatibility: Designed for Claude CodeGuide for upgrading algoliasearch from v4 to v5. The v5 release is a major rewrite: initIndex() is removed, all methods move to the client, and the import style changes.
algoliasearch v4 installed| v4 Pattern | v5 Replacement |
|---|---|
const client = algoliasearch(appId, key) | import { algoliasearch } from 'algoliasearch'; const client = algoliasearch(appId, key); |
const index = client.initIndex('name') | Removed — pass indexName to every method |
index.search('query') | client.searchSingleIndex({ indexName, searchParams: { query } }) |
index.saveObjects(records) | client.saveObjects({ indexName, objects }) |
index.saveObject(record) | client.saveObject({ indexName, body: record }) |
index.partialUpdateObject(data) | client.partialUpdateObject({ indexName, objectID, attributesToUpdate }) |
index.deleteObject('id') | client.deleteObject({ indexName, objectID }) |
index.setSettings(settings) | client.setSettings({ indexName, indexSettings }) |
index.getSettings() | client.getSettings({ indexName }) |
index.browse() | client.browse({ indexName, browseParams }) |
index.findObject(cb) | client.findObject({ indexName, ... }) |
index.replaceAllObjects(records) | client.replaceAllObjects({ indexName, objects }) |
index.saveSynonyms(syns) | client.saveSynonyms({ indexName, synonymHit }) |
index.saveRule(rule) | client.saveRule({ indexName, objectID, rule }) |
index.waitTask(taskID) | client.waitForTask({ indexName, taskID }) |
The upgrade steps are concrete v4-to-v5 examples: replace client initialization and method calls, then run the search and type-check suite before widening rollout. Keep the pre-upgrade branch available until production verification succeeds.
git checkout -b upgrade/algoliasearch-v5
npm install algoliasearch@latest
npm list algoliasearch # Verify v5.x.x
// v4
import algoliasearch from 'algoliasearch';
const client = algoliasearch('APP_ID', 'API_KEY');
// v5
import { algoliasearch } from 'algoliasearch';
const client = algoliasearch('APP_ID', 'API_KEY');
// v5 lite client (search-only, frontend)
import { liteClient } from 'algoliasearch/lite';
const searchClient = liteClient('APP_ID', 'SEARCH_KEY');
// v5 individual API client (if you only need one)
import { searchClient } from '@algolia/client-search';
// v4: index-based API
const index = client.initIndex('products');
const { hits } = await index.search('laptop');
await index.saveObjects(records);
await index.setSettings({ searchableAttributes: ['name'] });
// v5: client-based API with indexName parameter
const { hits } = await client.searchSingleIndex({
indexName: 'products',
searchParams: { query: 'laptop' },
});
await client.saveObjects({ indexName: 'products', objects: records });
await client.setSettings({
indexName: 'products',
indexSettings: { searchableAttributes: ['name'] },
});
// v4
const { taskID } = await index.saveObjects(records);
await index.waitTask(taskID);
// v5
const { taskID } = await client.saveObjects({ indexName: 'products', objects: records });
await client.waitForTask({ indexName: 'products', taskID });
// v4: error classes from algoliasearch
import { AlgoliaError } from 'algoliasearch';
// v5: error classes
import { ApiError } from 'algoliasearch';
try {
await client.searchSingleIndex({ indexName: 'products', searchParams: { query: 'test' } });
} catch (error) {
if (error instanceof ApiError) {
console.error(`HTTP ${error.status}: ${error.message}`);
}
}
# Find all files using Algolia v4 patterns
grep -rn "initIndex\|\.search(\|\.saveObjects\|\.setSettings\|\.deleteObject\|\.waitTask" \
--include="*.ts" --include="*.tsx" --include="*.js" --include="*.jsx" src/
# Run tests
npm test
# Type-check
npx tsc --noEmit
# If v5 breaks things, revert to v4
npm install algoliasearch@4
git checkout -- src/ # Restore v4 code
npm test # Verify v4 still works
The codebase uses the v5 client API with verified imports, parameter shapes, and task waiting, while retaining a tested rollback procedure to the prior package version and source revision.
| Issue | Cause | Solution |
|---|---|---|
initIndex is not a function | v5 installed but v4 code | Remove initIndex, pass indexName to methods |
searchSingleIndex is not a function | v4 installed but v5 code | Run npm install algoliasearch@latest |
| Type errors after upgrade | Changed type signatures | Update to new parameter objects |
default import error | v5 uses named exports | Change import algoliasearch to import { algoliasearch } |
For CI integration during upgrades, see algolia-ci-integration.
评论 (0)
暂无评论,成为第一个评论者吧!