Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/workflows/tessl-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
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
# `<component>-v<version>` (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.
#
# 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*'

permissions:
id-token: write
contents: read

jobs:
publish-bun:
name: Publish pleaseai/bun to Tessl
runs-on: ubuntu-latest
steps:
- name: Check TESSL_TOKEN is configured
id: guard
env:
TESSL_TOKEN: ${{ secrets.TESSL_TOKEN }}
run: |
if [ -z "$TESSL_TOKEN" ]; then
echo "::warning::TESSL_TOKEN not configured — skipping Tessl publish"
echo "skip=true" >> "$GITHUB_OUTPUT"
else
echo "skip=false" >> "$GITHUB_OUTPUT"
fi

- name: Checkout
if: steps.guard.outputs.skip != 'true'
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Set up Tessl CLI
if: steps.guard.outputs.skip != '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
51 changes: 51 additions & 0 deletions .github/workflows/tessl-skill-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
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.
#
# 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
# job level here. When the secret is absent the job no-ops with a warning instead
# of failing the PR.
#
# Pinning: skill-review has no tagged release yet, so it is pinned to a main
# commit SHA. Bump the SHA to adopt upstream changes.
on:
pull_request:
branches: [main]
paths:
- 'plugins/bun/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
runs-on: ubuntu-latest
env:
TESSL_TOKEN: ${{ secrets.TESSL_TOKEN }}
steps:
- name: Check TESSL_TOKEN is configured
id: guard
run: |
if [ -z "$TESSL_TOKEN" ]; then
echo "::warning::TESSL_TOKEN not configured — skipping Tessl skill review"
echo "skip=true" >> "$GITHUB_OUTPUT"
else
echo "skip=false" >> "$GITHUB_OUTPUT"
fi

- name: Checkout
if: steps.guard.outputs.skip != 'true'
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Review changed skills
if: steps.guard.outputs.skip != 'true'
uses: tesslio/skill-review@22e928dd837202b2b1d1397e0114c92e0fae5ead # main (no tagged release)
with:
path: plugins/bun
comment: 'true'
fail-threshold: '0'
12 changes: 12 additions & 0 deletions plugins/bun/.tessl-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "pleaseai/bun",
"description": "All-in-one JavaScript/TypeScript toolkit: fast runtime, package manager, test runner, and bundler. Version-aware skill backed by the ask CLI.",
"version": "1.2.0",
"author": {
"name": "Bun",
"url": "https://github.com/oven-sh/bun"
},
"skills": [
"skills/use-bun"
]
}
Comment thread
amondnet marked this conversation as resolved.
24 changes: 23 additions & 1 deletion plugins/bun/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@ The `SKILL.md` format is shared by Claude Code, Cursor, Codex CLI, Gemini CLI, G
| Claude Code | `.claude-plugin/plugin.json` | `./skills/` |
| Codex | `.codex-plugin/plugin.json` | `./skills/` |
| Antigravity | `plugin.json` (at plugin root) | `./skills/` |
| Tessl | `.tessl-plugin/plugin.json` | `skills/use-bun` |

All three tools read the same `skills/use-bun/SKILL.md`. Antigravity additionally accepts `mcp_config.json`, `hooks.json`, and `rules/` at plugin root if needed (this plugin uses none of them).
All tools read the same `skills/use-bun/SKILL.md`. Antigravity additionally accepts `mcp_config.json`, `hooks.json`, and `rules/` at plugin root if needed (this plugin uses none of them). Tessl publishes the skill to its registry as `pleaseai/bun` (see [Tessl](#tessl) below).

## Install

Expand Down Expand Up @@ -52,6 +53,26 @@ cp -R <path-to-this-plugin>/skills/use-bun ~/.gemini/antigravity/skills/

See the [Antigravity plugins docs](https://antigravity.google/docs/plugins) and the [Authoring Skills](https://codelabs.developers.google.com/getting-started-with-antigravity-skills) codelab for background.

### Tessl

This plugin ships a [Tessl](https://tessl.io) manifest (`.tessl-plugin/plugin.json`) so the `use-bun` skill can be published to and installed from the Tessl registry as `pleaseai/bun`.

```bash
# Install from the registry
tessl install pleaseai/bun

# Validate / publish from this directory (maintainers)
tessl plugin lint plugins/bun
tessl plugin publish # requires `tessl login` or a TESSL_TOKEN
```

The manifest `version` is kept in sync with the other manifests by release-please (it is a `$.version` extra-file alongside `.claude-plugin`, `.codex-plugin`, and root `plugin.json`). Tessl caps a skill's `description` at 1024 characters, so `skills/use-bun/SKILL.md` keeps its description within that limit.

CI automates this (requires a `TESSL_TOKEN` repo secret; both jobs no-op without it):

- **`.github/workflows/tessl-publish.yml`** — publishes to the registry when release-please tags a release (`bun-v*`).
- **`.github/workflows/tessl-skill-review.yml`** — runs the [`tesslio/skill-review`](https://github.com/tesslio/skill-review) action on PRs that touch `plugins/bun/skills/**`, posting the skill's quality score as a PR comment.

## Prerequisites

- Bun installed (`curl -fsSL https://bun.sh/install | bash`)
Expand All @@ -64,6 +85,7 @@ plugins/bun/
├── .claude-plugin/plugin.json # Claude Code manifest
├── .codex-plugin/plugin.json # Codex manifest
├── plugin.json # Antigravity marker file
├── .tessl-plugin/plugin.json # Tessl plugin manifest (pleaseai/bun)
├── README.md # this file
└── skills/use-bun/
├── SKILL.md # entry point — universal across all tools
Expand Down
5 changes: 5 additions & 0 deletions release-please-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -534,6 +534,11 @@
"type": "json",
"path": "plugin.json",
"jsonpath": "$.version"
},
{
"type": "json",
"path": ".tessl-plugin/plugin.json",
"jsonpath": "$.version"
}
]
},
Expand Down
Loading