diff --git a/.github/workflows/tessl-publish.yml b/.github/workflows/tessl-publish.yml index a6a9753f..1a251b7a 100644 --- a/.github/workflows/tessl-publish.yml +++ b/.github/workflows/tessl-publish.yml @@ -1,33 +1,43 @@ name: Tessl Publish -# Publishes the bun plugin to the Tessl registry as `pleaseai/bun` whenever -# release-please cuts a bun release. release-please tags components as -# `-v` (e.g. `bun-v1.3.0`) using a GitHub App token, so -# the tag push triggers this workflow. The checked-out tag already has the -# bumped version in plugins/bun/.tessl-plugin/plugin.json, so `tessl plugin -# publish` publishes exactly that version. +# Publishes a plugin to the Tessl registry when release-please cuts a release +# for it. release-please tags components as `-v` (e.g. +# `bun-v1.3.0`, `graphite-v2.1.0`) using a GitHub App token, so the tag push +# triggers this workflow. The component name matches the plugin directory under +# plugins/, and the checked-out tag already has the bumped version in +# plugins//.tessl-plugin/plugin.json, so `tessl plugin publish` +# publishes exactly that version. +# +# Only components that ship a .tessl-plugin/plugin.json are published; tags for +# any other component (apps/web, packages/*, plugins without a Tessl manifest) +# resolve to a missing manifest and the job no-ops. # # Requires repository secret TESSL_TOKEN (create via `tessl api-key create`). # When the secret is absent the job no-ops with a warning instead of failing. on: push: tags: - - 'bun-v*' + - '*-v*' permissions: id-token: write contents: read jobs: - publish-bun: - name: Publish pleaseai/bun to Tessl + publish: + name: Publish released plugin to Tessl runs-on: ubuntu-latest steps: - - name: Check TESSL_TOKEN is configured + - name: Resolve component and check TESSL_TOKEN id: guard env: TESSL_TOKEN: ${{ secrets.TESSL_TOKEN }} + TAG: ${{ github.ref_name }} run: | + # release-please tags components as -v; strip the + # trailing -v to recover the plugin directory name. + component="${TAG%-v*}" + echo "component=$component" >> "$GITHUB_OUTPUT" if [ -z "$TESSL_TOKEN" ]; then echo "::warning::TESSL_TOKEN not configured — skipping Tessl publish" echo "skip=true" >> "$GITHUB_OUTPUT" @@ -39,12 +49,27 @@ jobs: if: steps.guard.outputs.skip != 'true' uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - - name: Set up Tessl CLI + - name: Verify plugin has a Tessl manifest if: steps.guard.outputs.skip != 'true' + id: manifest + env: + COMPONENT: ${{ steps.guard.outputs.component }} + run: | + if [ -f "plugins/$COMPONENT/.tessl-plugin/plugin.json" ]; then + echo "publish=true" >> "$GITHUB_OUTPUT" + else + echo "::notice::plugins/$COMPONENT has no .tessl-plugin/plugin.json — not a Tessl plugin, skipping" + echo "publish=false" >> "$GITHUB_OUTPUT" + fi + + - name: Set up Tessl CLI + if: steps.guard.outputs.skip != 'true' && steps.manifest.outputs.publish == 'true' uses: tesslio/setup-tessl@25ec223fc0da33b41b8044ff5ab2b85235f4f91e # v2 with: token: ${{ secrets.TESSL_TOKEN }} - name: Publish plugin - if: steps.guard.outputs.skip != 'true' - run: tessl plugin publish plugins/bun + if: steps.guard.outputs.skip != 'true' && steps.manifest.outputs.publish == 'true' + env: + COMPONENT: ${{ steps.guard.outputs.component }} + run: tessl plugin publish "plugins/$COMPONENT" diff --git a/.github/workflows/tessl-skill-review.yml b/.github/workflows/tessl-skill-review.yml index 62096291..aac8eb7b 100644 --- a/.github/workflows/tessl-skill-review.yml +++ b/.github/workflows/tessl-skill-review.yml @@ -1,8 +1,12 @@ name: Tessl Skill Review -# Reviews the use-bun SKILL.md on PRs that touch it using the official -# tesslio/skill-review action, which runs `tessl skill review` on changed -# SKILL.md files and posts the quality scores as a PR comment. +# Reviews changed SKILL.md files on PRs using the official tesslio/skill-review +# action, which runs `tessl skill review` and posts the quality scores as a PR +# comment. The action scans the PR diff for changed SKILL.md files (as +# repo-relative paths) under the `path` root, so `path` is the repo root (`.`) +# and every plugin's skills are covered — not just one. (Passing a sub-directory +# as `path` double-prefixes the repo-relative changed paths and fails with +# "SKILL.md not found at plugins//plugins//...".) # # Auth: the skill-review composite runs tesslio/setup-tessl WITHOUT a token, and # the tessl CLI authenticates from the TESSL_TOKEN env var — so it is provided at @@ -15,15 +19,15 @@ on: pull_request: branches: [main] paths: - - 'plugins/bun/skills/**' + - 'plugins/**/skills/**' permissions: contents: read pull-requests: write # required for the action to post its review comment jobs: - review-use-bun: - name: Review use-bun skill + review: + name: Review changed skills runs-on: ubuntu-latest env: TESSL_TOKEN: ${{ secrets.TESSL_TOKEN }} @@ -46,6 +50,6 @@ jobs: if: steps.guard.outputs.skip != 'true' uses: tesslio/skill-review@22e928dd837202b2b1d1397e0114c92e0fae5ead # main (no tagged release) with: - path: plugins/bun + path: '.' comment: 'true' fail-threshold: '0' diff --git a/README.md b/README.md index b27852cb..3005e0a1 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,8 @@ Gemini CLI integration for Claude Code — use Google's Gemini models from withi ### Built-in Plugins #### Please Plugins (Plugin Recommender) +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fplease-plugins)](https://tessl.io/registry/pleaseai/please-plugins) + Auto-detect project dependencies and recommend matching Claude Code plugins from the pleaseai marketplace. **Install:** `/plugin install please-plugins@pleaseai` | **Source:** [plugins/please-plugins](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/please-plugins) @@ -101,11 +103,15 @@ Auto-approve safe commands, AI-assisted review for the rest. **Install:** `/plugin install gatekeeper@pleaseai` | **Source:** [plugins/gatekeeper](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/gatekeeper) #### Cubic +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fcubic)](https://tessl.io/registry/pleaseai/cubic) + AI-powered code review using Cubic CLI to detect bugs, security vulnerabilities, and style issues. **Install:** `/plugin install cubic@pleaseai` | **Source:** [plugins/cubic](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/cubic) #### MCP Dev +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fmcp-dev)](https://tessl.io/registry/pleaseai/mcp-dev) + Guide for creating high-quality MCP servers with best practices, TypeScript/Python patterns, and evaluation tools. **Install:** `/plugin install mcp-dev@pleaseai` | **Source:** [plugins/mcp-dev](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/mcp-dev) @@ -156,6 +162,8 @@ UnoCSS instant atomic CSS engine, superset of Tailwind CSS. **Install:** `/plugin install unocss@pleaseai` | **Source:** [plugins/unocss](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/unocss) #### Web Design +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fweb-design)](https://tessl.io/registry/pleaseai/web-design) + Review UI code for Web Interface Guidelines compliance. **Install:** `/plugin install web-design@pleaseai` | **Source:** [plugins/web-design](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/web-design) @@ -186,6 +194,8 @@ Anthony Fu's opinionated tooling and conventions for JavaScript/TypeScript proje **Install:** `/plugin install antfu@pleaseai` | **Source:** [plugins/antfu](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/antfu) #### Mastra +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fmastra)](https://tessl.io/registry/pleaseai/mastra) + Official agent skills for coding agents working with the Mastra AI framework. **Install:** `/plugin install mastra@pleaseai` | **Source:** [plugins/mastra](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/mastra) @@ -201,6 +211,8 @@ Official agent skills for Prisma ORM — schema design, migrations, queries, and **Install:** `/plugin install prisma@pleaseai` | **Source:** [plugins/prisma](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/prisma) #### Better Auth +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fbetter-auth)](https://tessl.io/registry/pleaseai/better-auth) + Better Auth authentication framework skills for JavaScript/TypeScript projects. **Install:** `/plugin install better-auth@pleaseai` | **Source:** [plugins/better-auth](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/better-auth) @@ -231,6 +243,8 @@ Git worktree isolation: injects context at session start and blocks file access **Install:** `/plugin install worktree@pleaseai` | **Source:** [plugins/worktree](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/worktree) #### MarkItDown +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fmarkitdown)](https://tessl.io/registry/pleaseai/markitdown) + Convert documents (PDF, DOCX, PPTX, images, etc.) to Markdown using Microsoft's MarkItDown MCP server. **Install:** `/plugin install markitdown@pleaseai` | **Source:** [plugins/markitdown](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/markitdown) @@ -311,6 +325,8 @@ Replace port numbers with stable, named local URLs. For humans and agents. **Install:** `/plugin install portless@pleaseai` | **Source:** [plugins/portless](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/portless) #### Zod +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fzod)](https://tessl.io/registry/pleaseai/zod) + TypeScript-first schema validation with static type inference — version-aware skill covering Zod v3 and v4 differences (entry points, error formatting, refinements). **Install:** `/plugin install zod@pleaseai` | **Source:** [plugins/zod](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/zod) @@ -322,6 +338,55 @@ Version-aware skill for the Bun JavaScript/TypeScript toolkit — runtime, packa **Install:** `/plugin install bun@pleaseai` | **Source:** [plugins/bun](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/bun) +#### Graphite +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fgraphite)](https://tessl.io/registry/pleaseai/graphite) + +Stacked PR workflow with the Graphite CLI (gt) — create stacks, submit, sync, restack, split/squash/fold, track existing branches, and collaborate on shared stacks + +**Install:** `/plugin install graphite@pleaseai` | **Source:** [plugins/graphite](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/graphite) + +#### Claude MD Management +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fclaude-md-management)](https://tessl.io/registry/pleaseai/claude-md-management) + +Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current. + +**Install:** `/plugin install claude-md-management@pleaseai` | **Source:** [plugins/claude-md-management](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/claude-md-management) + +#### Fetch +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Ffetch)](https://tessl.io/registry/pleaseai/fetch) + +Fetch web content in multiple formats - HTML, JSON, plain text, Markdown, readable articles, and YouTube transcripts + +**Install:** `/plugin install fetch@pleaseai` | **Source:** [plugins/fetch](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/fetch) + +#### Java Development +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fjava-development)](https://tessl.io/registry/pleaseai/java-development) + +Comprehensive collection of prompts and instructions for Java development including Spring Boot, Quarkus, testing, documentation, and best practices. + +**Install:** `/plugin install java-development@pleaseai` | **Source:** [plugins/java-development](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/java-development) + +#### Nuxt i18n +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fnuxt-i18n)](https://tessl.io/registry/pleaseai/nuxt-i18n) + +Nuxt i18n internationalization module for locale routing, lazy-loaded translations, SEO, browser detection, and multi-domain setups. Use when working with @nuxtjs/i18n, locale switching, translated routes, or i18n composables. + +**Install:** `/plugin install nuxt-i18n@pleaseai` | **Source:** [plugins/nuxt-i18n](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/nuxt-i18n) + +#### PortOne +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fportone)](https://tessl.io/registry/pleaseai/portone) + +포트원(PortOne) 결제 연동 코드 생성 및 검토 플러그인. V1/V2 API를 지원하며, MCP 서버를 통해 최신 문서와 예시 코드를 활용합니다. + +**Install:** `/plugin install portone@pleaseai` | **Source:** [plugins/portone](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/portone) + +#### Google Workspace +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fgoogle-workspace)](https://tessl.io/registry/pleaseai/google-workspace) + +CLI tool for managing Google Workspace resources dynamically using Discovery APIs. + +**Install:** `/plugin install google-workspace@pleaseai` | **Source:** [plugins/google-workspace](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/google-workspace) + ## Quick Start The fastest way to get started — install the marketplace and let the plugin recommender auto-detect what you need: @@ -452,6 +517,13 @@ Once the marketplace is added (or files copied), the following plugins are avail /plugin install portless@pleaseai /plugin install zod@pleaseai /plugin install bun@pleaseai +/plugin install graphite@pleaseai +/plugin install claude-md-management@pleaseai +/plugin install fetch@pleaseai +/plugin install java-development@pleaseai +/plugin install nuxt-i18n@pleaseai +/plugin install portone@pleaseai +/plugin install google-workspace@pleaseai ``` ## What Are Claude Code Plugins? diff --git a/plugins/better-auth/.tessl-plugin/plugin.json b/plugins/better-auth/.tessl-plugin/plugin.json new file mode 100644 index 00000000..1601cb4e --- /dev/null +++ b/plugins/better-auth/.tessl-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "pleaseai/better-auth", + "description": "Better Auth authentication framework skills for JavaScript/TypeScript projects", + "version": "1.4.0", + "author": { + "name": "Better Auth", + "url": "https://github.com/better-auth" + }, + "skills": [ + "skills/use-better-auth" + ] +} diff --git a/plugins/better-auth/README.md b/plugins/better-auth/README.md new file mode 100644 index 00000000..15000836 --- /dev/null +++ b/plugins/better-auth/README.md @@ -0,0 +1,7 @@ +# better-auth + +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fbetter-auth)](https://tessl.io/registry/pleaseai/better-auth) + +Better Auth authentication framework skills for JavaScript/TypeScript projects + +**Install:** `/plugin install better-auth@pleaseai` diff --git a/plugins/claude-md-management/.tessl-plugin/plugin.json b/plugins/claude-md-management/.tessl-plugin/plugin.json new file mode 100644 index 00000000..98840696 --- /dev/null +++ b/plugins/claude-md-management/.tessl-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "pleaseai/claude-md-management", + "description": "Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current.", + "version": "1.3.1", + "author": { + "name": "Anthropic", + "url": "https://github.com/anthropics" + }, + "skills": [ + "skills/claude-md-improver" + ] +} diff --git a/plugins/claude-md-management/README.md b/plugins/claude-md-management/README.md new file mode 100644 index 00000000..9e7933cb --- /dev/null +++ b/plugins/claude-md-management/README.md @@ -0,0 +1,7 @@ +# claude-md-management + +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fclaude-md-management)](https://tessl.io/registry/pleaseai/claude-md-management) + +Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current. + +**Install:** `/plugin install claude-md-management@pleaseai` diff --git a/plugins/cubic/.tessl-plugin/plugin.json b/plugins/cubic/.tessl-plugin/plugin.json new file mode 100644 index 00000000..0b24ac2e --- /dev/null +++ b/plugins/cubic/.tessl-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "pleaseai/cubic", + "description": "AI-powered code review using Cubic CLI. Detects bugs, security vulnerabilities, and style issues before commits.", + "version": "0.1.0", + "author": { + "name": "Minsu Lee", + "url": "https://github.com/amondnet" + }, + "skills": [ + "skills/cubic-review" + ] +} diff --git a/plugins/cubic/README.md b/plugins/cubic/README.md new file mode 100644 index 00000000..2e62b3d8 --- /dev/null +++ b/plugins/cubic/README.md @@ -0,0 +1,7 @@ +# cubic + +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fcubic)](https://tessl.io/registry/pleaseai/cubic) + +AI-powered code review using Cubic CLI. Detects bugs, security vulnerabilities, and style issues before commits. + +**Install:** `/plugin install cubic@pleaseai` diff --git a/plugins/cubic/skills/cubic-review/SKILL.md b/plugins/cubic/skills/cubic-review/SKILL.md index ad16e124..6a603dd6 100644 --- a/plugins/cubic/skills/cubic-review/SKILL.md +++ b/plugins/cubic/skills/cubic-review/SKILL.md @@ -1,5 +1,5 @@ --- -name: Code Review via Cubic CLI +name: cubic-review description: Run AI-powered code reviews using Cubic CLI to detect bugs, security vulnerabilities, and style issues in local changes. Use when the user says "review my code," "check my changes for bugs," "run cubic review," "review this diff," "pre-commit check," "find issues before I push," "analyze my branch changes," or "code quality check." Triggers on mentions of cubic, code review, diff review, pre-commit checks, bug detection, and code quality validation. allowed-tools: Bash, Read, Edit --- diff --git a/plugins/fetch/.tessl-plugin/plugin.json b/plugins/fetch/.tessl-plugin/plugin.json new file mode 100644 index 00000000..5fe97b21 --- /dev/null +++ b/plugins/fetch/.tessl-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "pleaseai/fetch", + "description": "Fetch web content in multiple formats - HTML, JSON, plain text, Markdown, readable articles, and YouTube transcripts", + "version": "1.0.0", + "author": { + "name": "fetch-mcp project", + "url": "https://github.com/zcaceres/fetch-mcp" + }, + "skills": [ + "skills/fetch" + ] +} diff --git a/plugins/fetch/README.md b/plugins/fetch/README.md new file mode 100644 index 00000000..734d7d63 --- /dev/null +++ b/plugins/fetch/README.md @@ -0,0 +1,7 @@ +# fetch + +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Ffetch)](https://tessl.io/registry/pleaseai/fetch) + +Fetch web content in multiple formats - HTML, JSON, plain text, Markdown, readable articles, and YouTube transcripts + +**Install:** `/plugin install fetch@pleaseai` diff --git a/plugins/fetch/skills/fetch/SKILL.md b/plugins/fetch/skills/fetch/SKILL.md index 4ccb188f..d6c6e21b 100644 --- a/plugins/fetch/skills/fetch/SKILL.md +++ b/plugins/fetch/skills/fetch/SKILL.md @@ -1,5 +1,5 @@ --- -name: Fetching Web Content +name: fetch description: Fetch web content in multiple formats using fetch MCP tools. Use when WebFetch fails with 403/access errors, when fetching HTML pages, JSON APIs, plain text, readable article content, or YouTube transcripts. Triggers on mentions of fetching URLs, web scraping, reading web pages, downloading content, or accessing online resources. allowed-tools: mcp__fetch__fetch_html, mcp__fetch__fetch_markdown, mcp__fetch__fetch_txt, mcp__fetch__fetch_json, mcp__fetch__fetch_readable, mcp__fetch__fetch_youtube_transcript --- diff --git a/plugins/google-workspace/.tessl-plugin/plugin.json b/plugins/google-workspace/.tessl-plugin/plugin.json new file mode 100644 index 00000000..e40ec6a5 --- /dev/null +++ b/plugins/google-workspace/.tessl-plugin/plugin.json @@ -0,0 +1,118 @@ +{ + "name": "pleaseai/google-workspace", + "description": "CLI tool for managing Google Workspace resources dynamically using Discovery APIs.", + "version": "1.1.0", + "author": { + "name": "googleworkspace", + "url": "https://github.com/googleworkspace" + }, + "skills": [ + "skills/gws-admin", + "skills/gws-admin-reports", + "skills/gws-alertcenter", + "skills/gws-apps-script", + "skills/gws-apps-script-push", + "skills/gws-calendar", + "skills/gws-calendar-agenda", + "skills/gws-calendar-insert", + "skills/gws-chat", + "skills/gws-chat-send", + "skills/gws-classroom", + "skills/gws-cloudidentity", + "skills/gws-docs", + "skills/gws-docs-write", + "skills/gws-drive", + "skills/gws-drive-upload", + "skills/gws-events", + "skills/gws-events-renew", + "skills/gws-events-subscribe", + "skills/gws-forms", + "skills/gws-gmail", + "skills/gws-gmail-send", + "skills/gws-gmail-triage", + "skills/gws-gmail-watch", + "skills/gws-groupssettings", + "skills/gws-keep", + "skills/gws-licensing", + "skills/gws-meet", + "skills/gws-modelarmor", + "skills/gws-modelarmor-create-template", + "skills/gws-modelarmor-sanitize-prompt", + "skills/gws-modelarmor-sanitize-response", + "skills/gws-people", + "skills/gws-reseller", + "skills/gws-shared", + "skills/gws-sheets", + "skills/gws-sheets-append", + "skills/gws-sheets-read", + "skills/gws-slides", + "skills/gws-tasks", + "skills/gws-vault", + "skills/gws-workflow", + "skills/gws-workflow-email-to-task", + "skills/gws-workflow-file-announce", + "skills/gws-workflow-meeting-prep", + "skills/gws-workflow-standup-report", + "skills/gws-workflow-weekly-digest", + "skills/persona-content-creator", + "skills/persona-customer-support", + "skills/persona-event-coordinator", + "skills/persona-exec-assistant", + "skills/persona-hr-coordinator", + "skills/persona-it-admin", + "skills/persona-project-manager", + "skills/persona-researcher", + "skills/persona-sales-ops", + "skills/persona-team-lead", + "skills/recipe-audit-external-sharing", + "skills/recipe-backup-sheet-as-csv", + "skills/recipe-batch-invite-to-event", + "skills/recipe-batch-rename-files", + "skills/recipe-batch-reply-to-emails", + "skills/recipe-block-focus-time", + "skills/recipe-bulk-download-folder", + "skills/recipe-cancel-and-notify", + "skills/recipe-collect-form-responses", + "skills/recipe-compare-sheet-tabs", + "skills/recipe-copy-sheet-for-new-month", + "skills/recipe-create-classroom-course", + "skills/recipe-create-doc-from-template", + "skills/recipe-create-events-from-sheet", + "skills/recipe-create-expense-tracker", + "skills/recipe-create-feedback-form", + "skills/recipe-create-gmail-filter", + "skills/recipe-create-meet-space", + "skills/recipe-create-presentation", + "skills/recipe-create-shared-drive", + "skills/recipe-create-task-list", + "skills/recipe-create-vacation-responder", + "skills/recipe-deploy-apps-script", + "skills/recipe-draft-email-from-doc", + "skills/recipe-email-drive-link", + "skills/recipe-find-free-time", + "skills/recipe-find-large-files", + "skills/recipe-forward-labeled-emails", + "skills/recipe-generate-report-from-sheet", + "skills/recipe-label-and-archive-emails", + "skills/recipe-log-deal-update", + "skills/recipe-organize-drive-folder", + "skills/recipe-plan-weekly-schedule", + "skills/recipe-post-mortem-setup", + "skills/recipe-reschedule-meeting", + "skills/recipe-review-meet-participants", + "skills/recipe-review-overdue-tasks", + "skills/recipe-save-email-attachments", + "skills/recipe-save-email-to-doc", + "skills/recipe-schedule-recurring-event", + "skills/recipe-search-and-export-emails", + "skills/recipe-send-personalized-emails", + "skills/recipe-send-team-announcement", + "skills/recipe-share-doc-and-notify", + "skills/recipe-share-event-materials", + "skills/recipe-share-folder-with-team", + "skills/recipe-sync-contacts-to-sheet", + "skills/recipe-transfer-file-ownership", + "skills/recipe-triage-security-alerts", + "skills/recipe-watch-drive-changes" + ] +} diff --git a/plugins/google-workspace/README.md b/plugins/google-workspace/README.md new file mode 100644 index 00000000..71b37377 --- /dev/null +++ b/plugins/google-workspace/README.md @@ -0,0 +1,7 @@ +# google-workspace + +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fgoogle-workspace)](https://tessl.io/registry/pleaseai/google-workspace) + +CLI tool for managing Google Workspace resources dynamically using Discovery APIs. + +**Install:** `/plugin install google-workspace@pleaseai` diff --git a/plugins/graphite/.tessl-plugin/plugin.json b/plugins/graphite/.tessl-plugin/plugin.json new file mode 100644 index 00000000..052747f0 --- /dev/null +++ b/plugins/graphite/.tessl-plugin/plugin.json @@ -0,0 +1,14 @@ +{ + "name": "pleaseai/graphite", + "description": "Stacked PR workflow with the Graphite CLI (gt) — create stacks, submit, sync, restack, split/squash/fold, track existing branches, collaborate on shared stacks, configure repo/CI for Graphite, and operate the merge queue.", + "version": "2.0.0", + "author": { + "name": "Graphite", + "url": "https://github.com/withgraphite" + }, + "skills": [ + "skills/graphite", + "skills/graphite-setup", + "skills/graphite-merge-queue" + ] +} diff --git a/plugins/graphite/README.md b/plugins/graphite/README.md index 1f2ffece..ca741ab4 100644 --- a/plugins/graphite/README.md +++ b/plugins/graphite/README.md @@ -1,5 +1,7 @@ # graphite +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fgraphite)](https://tessl.io/registry/pleaseai/graphite) + Stacked pull-request workflow with the Graphite CLI (`gt`). Teaches Claude to drive `gt` for creating, syncing, restacking, and submitting branch stacks. ## Overview diff --git a/plugins/graphite/skills/graphite-setup/SKILL.md b/plugins/graphite/skills/graphite-setup/SKILL.md index e424c794..2b0be931 100644 --- a/plugins/graphite/skills/graphite-setup/SKILL.md +++ b/plugins/graphite/skills/graphite-setup/SKILL.md @@ -15,6 +15,21 @@ Source docs (cite when proposing changes): - [Setup: recommended CI settings](https://graphite.com/docs/setup-recommended-ci-settings) - [Stacking and CI](https://graphite.com/docs/stacking-and-ci) +## Onboarding a repo — do this in order + +Work top-down. Each step has a checkpoint; if it fails, fix that step before moving on — a later step won't compensate for an earlier misconfiguration. + +1. **Repo settings** — disable the single-push branch limit, enable auto-delete head branches ([GitHub repository settings](#github-repository-settings)). + - ✅ Checkpoint: `gt submit --stack` on a 2-branch test stack pushes both branches without a "too many branches in one push" error. +2. **Branch protection** — turn off the four Graphite-breaking settings; keep the recommended safe ones (tables below). + - ✅ Checkpoint: open a test PR, approve it, then push an amend — the approval is **not** dismissed and the PR stays mergeable. +3. **CI triggers** — add `branches-ignore: "**/graphite-base/**"` and ensure CI runs on every stacked PR, not just trunk ([CI configuration](#ci-configuration)). + - ✅ Checkpoint: push a 2-PR stack; both PRs get CI runs, and no job fails with "branch not found" on a `graphite-base/*` ref. +4. **Merge queue** — pick exactly one mode ([Merge queue: pick one](#merge-queue-pick-one)); skip if you aren't using a queue. + - ✅ Checkpoint: only one queue is active — if you chose Graphite's, GitHub's native queue is off in branch protection. +5. **(Optional) CI Optimizations** — only for teams with tall stacks and ≥~10 active stackers ([CI Optimizations](#ci-optimizations-stack-aware-skipping)). + - ✅ Checkpoint: a known-skippable intermediate PR shows its CI skipped, while the base and top PRs still run. + ## When to reach for this skill - The user just installed Graphite on a new repo and asks "what do I need to configure?" @@ -114,7 +129,10 @@ jobs: steps: - id: check run: | - # Call Graphite's CI optimization API; set steps.check.outputs.skip + # Set steps.check.outputs.skip from Graphite's CI-optimization endpoint. + # Prefer Graphite's official CI-optimization Action over a hand-rolled + # API call — see the stacking-and-ci doc (linked above) for the current + # action name, its inputs, and the exact output field to read. ... test: diff --git a/plugins/graphite/skills/graphite/SKILL.md b/plugins/graphite/skills/graphite/SKILL.md index 577f4d87..e812d78a 100644 --- a/plugins/graphite/skills/graphite/SKILL.md +++ b/plugins/graphite/skills/graphite/SKILL.md @@ -7,7 +7,7 @@ user-invocable: false # Graphite CLI (`gt`) — Stacked PR Workflow -Graphite is a CLI on top of git that makes **stacks of small PRs** ergonomic. A stack is a sequence of branches where each builds on its parent; each branch maps to one PR. The CLI is invoked as `gt` (not `graphite`). +Invoke the CLI as `gt` (not `graphite`). A stack is a chain of branches where each builds on its parent and maps to one PR. When the user is in a Graphite repo (`.git/.graphite_repo_config` present) or mentions stacked PRs / `gt` / Graphite, prefer `gt` over raw `git` for branch creation, rebasing, and pushes. Plain git still works for staging, diffing, logs, and inspection. diff --git a/plugins/java-development/.tessl-plugin/plugin.json b/plugins/java-development/.tessl-plugin/plugin.json new file mode 100644 index 00000000..e7be2912 --- /dev/null +++ b/plugins/java-development/.tessl-plugin/plugin.json @@ -0,0 +1,15 @@ +{ + "name": "pleaseai/java-development", + "description": "Comprehensive collection of prompts and instructions for Java development including Spring Boot, Quarkus, testing, documentation, and best practices.", + "version": "1.0.0", + "author": { + "name": "Awesome Copilot Community", + "url": "https://github.com/github/awesome-copilot" + }, + "skills": [ + "skills/create-spring-boot-java-project", + "skills/java-docs", + "skills/java-junit", + "skills/java-springboot" + ] +} diff --git a/plugins/markitdown/.tessl-plugin/plugin.json b/plugins/markitdown/.tessl-plugin/plugin.json new file mode 100644 index 00000000..d7ee7b04 --- /dev/null +++ b/plugins/markitdown/.tessl-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "pleaseai/markitdown", + "description": "Convert documents (PDF, DOCX, PPTX, images, etc.) to Markdown using MarkItDown MCP server", + "version": "1.3.0", + "author": { + "name": "Microsoft", + "url": "https://github.com/microsoft" + }, + "skills": [ + "skills/markitdown" + ] +} diff --git a/plugins/markitdown/README.md b/plugins/markitdown/README.md new file mode 100644 index 00000000..ef6f1b0a --- /dev/null +++ b/plugins/markitdown/README.md @@ -0,0 +1,7 @@ +# markitdown + +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fmarkitdown)](https://tessl.io/registry/pleaseai/markitdown) + +Convert documents (PDF, DOCX, PPTX, images, etc.) to Markdown using MarkItDown MCP server + +**Install:** `/plugin install markitdown@pleaseai` diff --git a/plugins/mastra/.tessl-plugin/plugin.json b/plugins/mastra/.tessl-plugin/plugin.json new file mode 100644 index 00000000..3db64c8d --- /dev/null +++ b/plugins/mastra/.tessl-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "pleaseai/mastra", + "description": "Official agent skills for coding agents working with the Mastra AI framework", + "version": "1.5.0", + "author": { + "name": "Mastra AI", + "url": "https://github.com/mastra-ai" + }, + "skills": [ + "skills/use-mastra" + ] +} diff --git a/plugins/mastra/README.md b/plugins/mastra/README.md new file mode 100644 index 00000000..a0e730ad --- /dev/null +++ b/plugins/mastra/README.md @@ -0,0 +1,7 @@ +# mastra + +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fmastra)](https://tessl.io/registry/pleaseai/mastra) + +Official agent skills for coding agents working with the Mastra AI framework + +**Install:** `/plugin install mastra@pleaseai` diff --git a/plugins/mcp-dev/.tessl-plugin/plugin.json b/plugins/mcp-dev/.tessl-plugin/plugin.json new file mode 100644 index 00000000..029fc317 --- /dev/null +++ b/plugins/mcp-dev/.tessl-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "pleaseai/mcp-dev", + "description": "Guide for creating high-quality MCP servers with best practices, TypeScript/Python patterns, and evaluation tools", + "version": "1.0.0", + "author": { + "name": "Anthropic", + "url": "https://github.com/anthropics" + }, + "skills": [ + "skills/mcp-builder" + ] +} diff --git a/plugins/mcp-dev/README.md b/plugins/mcp-dev/README.md new file mode 100644 index 00000000..5b3ea53d --- /dev/null +++ b/plugins/mcp-dev/README.md @@ -0,0 +1,7 @@ +# mcp-dev + +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fmcp-dev)](https://tessl.io/registry/pleaseai/mcp-dev) + +Guide for creating high-quality MCP servers with best practices, TypeScript/Python patterns, and evaluation tools + +**Install:** `/plugin install mcp-dev@pleaseai` diff --git a/plugins/nuxt-i18n/.tessl-plugin/plugin.json b/plugins/nuxt-i18n/.tessl-plugin/plugin.json new file mode 100644 index 00000000..3b8f7a98 --- /dev/null +++ b/plugins/nuxt-i18n/.tessl-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "pleaseai/nuxt-i18n", + "description": "Nuxt i18n internationalization module for locale routing, lazy-loaded translations, SEO, browser detection, and multi-domain setups. Use when working with @nuxtjs/i18n, locale switching, translated routes, or i18n composables.", + "version": "1.2.0", + "author": { + "name": "Nuxt Community", + "url": "https://github.com/nuxt-modules" + }, + "skills": [ + "skills/nuxt-i18n" + ] +} diff --git a/plugins/nuxt-i18n/README.md b/plugins/nuxt-i18n/README.md new file mode 100644 index 00000000..1b189d3b --- /dev/null +++ b/plugins/nuxt-i18n/README.md @@ -0,0 +1,7 @@ +# nuxt-i18n + +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fnuxt-i18n)](https://tessl.io/registry/pleaseai/nuxt-i18n) + +Nuxt i18n internationalization module for locale routing, lazy-loaded translations, SEO, browser detection, and multi-domain setups. Use when working with @nuxtjs/i18n, locale switching, translated routes, or i18n composables. + +**Install:** `/plugin install nuxt-i18n@pleaseai` diff --git a/plugins/please-plugins/.tessl-plugin/plugin.json b/plugins/please-plugins/.tessl-plugin/plugin.json new file mode 100644 index 00000000..c1983375 --- /dev/null +++ b/plugins/please-plugins/.tessl-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "pleaseai/please-plugins", + "description": "Auto-detect project dependencies and recommend matching Claude Code plugins from the pleaseai marketplace", + "version": "1.4.0", + "author": { + "name": "Passion Factory", + "url": "https://github.com/pleaseai" + }, + "skills": [ + "skills/find-plugin" + ] +} diff --git a/plugins/please-plugins/README.md b/plugins/please-plugins/README.md new file mode 100644 index 00000000..87a938aa --- /dev/null +++ b/plugins/please-plugins/README.md @@ -0,0 +1,7 @@ +# please-plugins + +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fplease-plugins)](https://tessl.io/registry/pleaseai/please-plugins) + +Auto-detect project dependencies and recommend matching Claude Code plugins from the pleaseai marketplace + +**Install:** `/plugin install please-plugins@pleaseai` diff --git a/plugins/please-plugins/skills/find-plugin/SKILL.md b/plugins/please-plugins/skills/find-plugin/SKILL.md index aa311b28..50965d1d 100644 --- a/plugins/please-plugins/skills/find-plugin/SKILL.md +++ b/plugins/please-plugins/skills/find-plugin/SKILL.md @@ -1,5 +1,5 @@ --- -name: Find Plugin +name: find-plugin description: Helps users discover and install Claude Code plugins from the pleaseai marketplace. Use this skill whenever a user asks "how do I do X", "find a plugin for X", "is there a plugin that can...", "recommend a plugin", "what plugins are available", wants to extend Claude Code capabilities, or mentions a technology/framework and could benefit from a plugin they haven't installed yet. Also use when the user is stuck on a task that an available plugin could solve, even if they don't explicitly ask for a plugin. allowed-tools: Bash, Read, Glob, Grep --- diff --git a/plugins/portone/.tessl-plugin/plugin.json b/plugins/portone/.tessl-plugin/plugin.json new file mode 100644 index 00000000..f9b5aaf6 --- /dev/null +++ b/plugins/portone/.tessl-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "pleaseai/portone", + "description": "\ud3ec\ud2b8\uc6d0(PortOne) \uacb0\uc81c \uc5f0\ub3d9 \ucf54\ub4dc \uc0dd\uc131 \ubc0f \uac80\ud1a0 \ud50c\ub7ec\uadf8\uc778. V1/V2 API\ub97c \uc9c0\uc6d0\ud558\uba70, MCP \uc11c\ubc84\ub97c \ud1b5\ud574 \ucd5c\uc2e0 \ubb38\uc11c\uc640 \uc608\uc2dc \ucf54\ub4dc\ub97c \ud65c\uc6a9\ud569\ub2c8\ub2e4.", + "version": "1.1.0", + "author": { + "name": "PortOne", + "url": "https://portone.io" + }, + "skills": [ + "skills/portone-guide" + ] +} diff --git a/plugins/portone/README.md b/plugins/portone/README.md index 2e6857f6..bf1a5202 100644 --- a/plugins/portone/README.md +++ b/plugins/portone/README.md @@ -1,5 +1,7 @@ # PortOne Integration Plugin +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fportone)](https://tessl.io/registry/pleaseai/portone) + 포트원(PortOne) 결제 연동 코드 생성 및 검토를 도와주는 Claude Code 플러그인입니다. ## 기능 diff --git a/plugins/web-design/.tessl-plugin/plugin.json b/plugins/web-design/.tessl-plugin/plugin.json new file mode 100644 index 00000000..908b96e3 --- /dev/null +++ b/plugins/web-design/.tessl-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "pleaseai/web-design", + "description": "Review UI code for Web Interface Guidelines compliance", + "version": "1.2.0", + "author": { + "name": "Anthony Fu", + "url": "https://github.com/antfu" + }, + "skills": [ + "skills/web-design-guidelines" + ] +} diff --git a/plugins/web-design/README.md b/plugins/web-design/README.md new file mode 100644 index 00000000..a8e72665 --- /dev/null +++ b/plugins/web-design/README.md @@ -0,0 +1,7 @@ +# web-design + +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fweb-design)](https://tessl.io/registry/pleaseai/web-design) + +Review UI code for Web Interface Guidelines compliance + +**Install:** `/plugin install web-design@pleaseai` diff --git a/plugins/zod/.tessl-plugin/plugin.json b/plugins/zod/.tessl-plugin/plugin.json new file mode 100644 index 00000000..3433a5ee --- /dev/null +++ b/plugins/zod/.tessl-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "pleaseai/zod", + "description": "TypeScript-first schema validation with static type inference - version-aware skill for Zod v3 and v4", + "version": "1.1.0", + "author": { + "name": "Zod", + "url": "https://github.com/colinhacks/zod" + }, + "skills": [ + "skills/use-zod" + ] +} diff --git a/plugins/zod/README.md b/plugins/zod/README.md new file mode 100644 index 00000000..25282a79 --- /dev/null +++ b/plugins/zod/README.md @@ -0,0 +1,7 @@ +# zod + +[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fpleaseai%2Fzod)](https://tessl.io/registry/pleaseai/zod) + +TypeScript-first schema validation with static type inference - version-aware skill for Zod v3 and v4 + +**Install:** `/plugin install zod@pleaseai` diff --git a/release-please-config.json b/release-please-config.json index 69f0d388..d6fb1dcc 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -183,6 +183,21 @@ "type": "json", "path": ".claude-plugin/plugin.json", "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" } ] }, @@ -194,6 +209,21 @@ "type": "json", "path": ".claude-plugin/plugin.json", "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" } ] }, @@ -238,6 +268,21 @@ "type": "json", "path": ".claude-plugin/plugin.json", "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" } ] }, @@ -293,6 +338,21 @@ "type": "json", "path": ".claude-plugin/plugin.json", "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" } ] }, @@ -304,6 +364,21 @@ "type": "json", "path": ".claude-plugin/plugin.json", "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" } ] }, @@ -326,6 +401,21 @@ "type": "json", "path": ".claude-plugin/plugin.json", "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" } ] }, @@ -370,6 +460,21 @@ "type": "json", "path": ".claude-plugin/plugin.json", "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" } ] }, @@ -502,6 +607,21 @@ "type": "json", "path": ".claude-plugin/plugin.json", "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" } ] }, @@ -513,6 +633,21 @@ "type": "json", "path": ".claude-plugin/plugin.json", "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" } ] }, @@ -560,11 +695,148 @@ "type": "json", "path": "plugin.json", "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" + } + ] + }, + "plugins/claude-md-management": { + "release-type": "simple", + "component": "claude-md-management", + "extra-files": [ + { + "type": "json", + "path": ".claude-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" + } + ] + }, + "plugins/cubic": { + "release-type": "simple", + "component": "cubic", + "extra-files": [ + { + "type": "json", + "path": ".claude-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" + } + ] + }, + "plugins/fetch": { + "release-type": "simple", + "component": "fetch", + "extra-files": [ + { + "type": "json", + "path": ".claude-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" + } + ] + }, + "plugins/java-development": { + "release-type": "simple", + "component": "java-development", + "extra-files": [ + { + "type": "json", + "path": ".claude-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" + } + ] + }, + "plugins/mcp-dev": { + "release-type": "simple", + "component": "mcp-dev", + "extra-files": [ + { + "type": "json", + "path": ".claude-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".codex-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".tessl-plugin/plugin.json", + "jsonpath": "$.version" } ] } }, "release-type": "node", - "plugins": ["node-workspace"], + "plugins": [ + "node-workspace" + ], "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json" }