From 45a17aec38564813613bfe4bf74ac2b752855fb9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 25 May 2026 19:10:37 +0000 Subject: [PATCH 1/5] Fix release asset packaging Agent-Logs-Url: https://github.com/Cyber-Gen/visual-explainer-skill/sessions/d932e61f-b4bb-42f8-aeb3-fac6ad53090c Co-authored-by: Cyber-Gen <78339004+Cyber-Gen@users.noreply.github.com> --- .claude-plugin/plugin.json | 4 +-- .github/workflows/release.yml | 56 ++++++++++++++++++++++++++++------- README.md | 8 ++--- 3 files changed, 51 insertions(+), 17 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 034a557..b341f63 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -6,8 +6,8 @@ "name": "Cyber-Gen", "url": "https://github.com/Cyber-Gen" }, - "homepage": "https://github.com/Cyber-Gen/visual-explainer", - "repository": "https://github.com/Cyber-Gen/visual-explainer", + "homepage": "https://github.com/Cyber-Gen/visual-explainer-skill", + "repository": "https://github.com/Cyber-Gen/visual-explainer-skill", "license": "MIT", "keywords": [ "explainer", diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e28bf60..3cfac66 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,11 +60,10 @@ jobs: [ "$missing" -eq 0 ] - name: Build plugin zip (explicit allowlist) - id: plugin_zip run: | set -euo pipefail version="$(jq -r '.version' .claude-plugin/plugin.json)" - zipname="visual-explainer-v${version}.zip" + zipname="visual-explainer-plugin-v${version}.zip" stage="$(mktemp -d)" root="$stage/visual-explainer" mkdir -p \ @@ -80,31 +79,66 @@ jobs: cp README.md "$root/README.md" cp LICENSE "$root/LICENSE" (cd "$stage" && zip -r "$GITHUB_WORKSPACE/$zipname" visual-explainer) - sha="$(sha256sum "$zipname" | awk '{print $1}')" - echo "name=$zipname" >> "$GITHUB_OUTPUT" - echo "sha=$sha" >> "$GITHUB_OUTPUT" + cp "$zipname" "$GITHUB_WORKSPACE/visual-explainer-plugin-latest.zip" + + - name: Build standalone skill zip (explicit allowlist) + run: | + set -euo pipefail + version="$(jq -r '.version' .claude-plugin/plugin.json)" + zipname="visual-explainer-skill-v${version}.zip" + stage="$(mktemp -d)" + root="$stage/visual-explainer" + mkdir -p \ + "$root/references" \ + "$root/examples" + cp skills/visual-explainer/SKILL.md "$root/SKILL.md" + cp skills/visual-explainer/references/design-system.md "$root/references/" + cp skills/visual-explainer/references/visual-snapshot-library.md "$root/references/" + cp skills/visual-explainer/references/writing-voice.md "$root/references/" + cp skills/visual-explainer/examples/reference-example.html "$root/examples/" + (cd "$stage" && zip -r "$GITHUB_WORKSPACE/$zipname" visual-explainer) + cp "$zipname" "$GITHUB_WORKSPACE/visual-explainer-skill-latest.zip" + + - name: Generate checksums + run: | + set -euo pipefail + sha256sum \ + visual-explainer-plugin-v*.zip \ + visual-explainer-plugin-latest.zip \ + visual-explainer-skill-v*.zip \ + visual-explainer-skill-latest.zip \ + > release-assets-sha256.txt - name: Create GitHub Release env: GH_TOKEN: ${{ github.token }} - ZIP_NAME: ${{ steps.plugin_zip.outputs.name }} - ZIP_SHA: ${{ steps.plugin_zip.outputs.sha }} TAG: ${{ github.ref_name }} run: | set -euo pipefail + version="$(jq -r '.version' .claude-plugin/plugin.json)" + plugin_zip="visual-explainer-plugin-v${version}.zip" + skill_zip="visual-explainer-skill-v${version}.zip" notes_file="$(mktemp)" cat > "$notes_file" < Date: Mon, 25 May 2026 19:30:33 +0000 Subject: [PATCH 2/5] Remove latest release asset aliases Agent-Logs-Url: https://github.com/Cyber-Gen/visual-explainer-skill/sessions/40635cb1-628e-4ebd-a94c-7dc88354a55e Co-authored-by: Cyber-Gen <78339004+Cyber-Gen@users.noreply.github.com> --- .github/workflows/release.yml | 8 -------- README.md | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3cfac66..1e9de34 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -79,7 +79,6 @@ jobs: cp README.md "$root/README.md" cp LICENSE "$root/LICENSE" (cd "$stage" && zip -r "$GITHUB_WORKSPACE/$zipname" visual-explainer) - cp "$zipname" "$GITHUB_WORKSPACE/visual-explainer-plugin-latest.zip" - name: Build standalone skill zip (explicit allowlist) run: | @@ -97,16 +96,13 @@ jobs: cp skills/visual-explainer/references/writing-voice.md "$root/references/" cp skills/visual-explainer/examples/reference-example.html "$root/examples/" (cd "$stage" && zip -r "$GITHUB_WORKSPACE/$zipname" visual-explainer) - cp "$zipname" "$GITHUB_WORKSPACE/visual-explainer-skill-latest.zip" - name: Generate checksums run: | set -euo pipefail sha256sum \ visual-explainer-plugin-v*.zip \ - visual-explainer-plugin-latest.zip \ visual-explainer-skill-v*.zip \ - visual-explainer-skill-latest.zip \ > release-assets-sha256.txt - name: Create GitHub Release @@ -123,9 +119,7 @@ jobs: ## Assets - \`${plugin_zip}\` — full plugin bundle with the standalone skill included. - - \`visual-explainer-plugin-latest.zip\` — latest alias for the full plugin bundle. - \`${skill_zip}\` — standalone skill bundle for \`~/.claude/skills/\`. - - \`visual-explainer-skill-latest.zip\` — latest alias for the standalone skill bundle. - \`release-assets-sha256.txt\` — SHA256 checksums for all attached zip assets. ## SHA256 @@ -136,9 +130,7 @@ jobs: EOF gh release create "$TAG" \ "$plugin_zip" \ - "visual-explainer-plugin-latest.zip" \ "$skill_zip" \ - "visual-explainer-skill-latest.zip" \ "release-assets-sha256.txt" \ --title "visual-explainer ${TAG}" \ --notes-file "$notes_file" diff --git a/README.md b/README.md index 2c963e2..f6eabd4 100644 --- a/README.md +++ b/README.md @@ -35,12 +35,29 @@ Download `visual-explainer-skill-vX.Y.Z.zip` from the [latest release](https://g ```bash mkdir -p ~/.claude/skills -curl -L -o /tmp/ve-skill.zip https://github.com/Cyber-Gen/visual-explainer-skill/releases/latest/download/visual-explainer-skill-latest.zip +VERSION=X.Y.Z +curl -L -o /tmp/ve-skill.zip "https://github.com/Cyber-Gen/visual-explainer-skill/releases/download/v${VERSION}/visual-explainer-skill-v${VERSION}.zip" unzip /tmp/ve-skill.zip -d ~/.claude/skills/ ``` This drops `~/.claude/skills/visual-explainer/SKILL.md` (plus its `references/` and `examples/`) — exactly the layout Claude Code expects for a standalone skill. +## Releasing + +Release tags must match `.claude-plugin/plugin.json` exactly: if the manifest version is `0.1.0`, create the tag `v0.1.0`. + +```bash +VERSION="$(jq -r '.version' .claude-plugin/plugin.json)" +git tag -a "v${VERSION}" -m "visual-explainer v${VERSION}" +git push origin "v${VERSION}" +``` + +Pushing that tag triggers `/home/runner/work/visual-explainer-skill/visual-explainer-skill/.github/workflows/release.yml`, which publishes: + +- `visual-explainer-plugin-vX.Y.Z.zip` +- `visual-explainer-skill-vX.Y.Z.zip` +- `release-assets-sha256.txt` + ## Invoke Once installed, the skill can be invoked by either: From b864b4dfc0e29844f83a85e5ead57e51b7a9506e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 25 May 2026 19:31:06 +0000 Subject: [PATCH 3/5] Document versioned release tagging Agent-Logs-Url: https://github.com/Cyber-Gen/visual-explainer-skill/sessions/40635cb1-628e-4ebd-a94c-7dc88354a55e Co-authored-by: Cyber-Gen <78339004+Cyber-Gen@users.noreply.github.com> --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f6eabd4..a2f6603 100644 --- a/README.md +++ b/README.md @@ -52,12 +52,14 @@ git tag -a "v${VERSION}" -m "visual-explainer v${VERSION}" git push origin "v${VERSION}" ``` -Pushing that tag triggers `/home/runner/work/visual-explainer-skill/visual-explainer-skill/.github/workflows/release.yml`, which publishes: +Pushing that tag triggers `.github/workflows/release.yml`, which publishes: - `visual-explainer-plugin-vX.Y.Z.zip` - `visual-explainer-skill-vX.Y.Z.zip` - `release-assets-sha256.txt` +If you create the tag in GitHub instead of locally, use the same `vX.Y.Z` name and point it at the commit whose `.claude-plugin/plugin.json` already contains `X.Y.Z`. + ## Invoke Once installed, the skill can be invoked by either: From f2d7c28948efa14bde1c687c270029c026dcbe51 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 25 May 2026 19:55:09 +0000 Subject: [PATCH 4/5] Document Claude upload flows Agent-Logs-Url: https://github.com/Cyber-Gen/visual-explainer-skill/sessions/5a36421c-cfd6-439d-8043-c02985140cbb Co-authored-by: Cyber-Gen <78339004+Cyber-Gen@users.noreply.github.com> --- README.md | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a2f6603..dcec02f 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,19 @@ Two install paths, depending on whether you want the full plugin or just the ski ### Option 1 — Full plugin (recommended) -Download `visual-explainer-plugin-vX.Y.Z.zip` from the [latest release](https://github.com/Cyber-Gen/visual-explainer-skill/releases/latest), unzip into your Claude Code plugins directory, and enable it. Or, for development, point Claude Code at this repo directly: +Download `visual-explainer-plugin-vX.Y.Z.zip` from the [latest release](https://github.com/Cyber-Gen/visual-explainer-skill/releases/latest). + +#### Upload in Claude.ai / Claude Desktop + +Use the same plugin upload flow in Claude.ai and Claude Desktop. Cowork, Chat, and Code should all accept the exact same `plugin.zip`. + +1. Download `visual-explainer-plugin-vX.Y.Z.zip`. +2. Open the plugin installer / upload flow in Claude.ai or Claude Desktop. +3. Choose **Upload plugin** and select the zip. +4. Confirm the install and enable `visual-explainer`. +5. Invoke it normally after install. + +#### Claude Code development install ```bash git clone https://github.com/Cyber-Gen/visual-explainer-skill.git @@ -31,7 +43,19 @@ claude --plugin-dir ./visual-explainer ### Option 2 — Skill only -Download `visual-explainer-skill-vX.Y.Z.zip` from the [latest release](https://github.com/Cyber-Gen/visual-explainer-skill/releases/latest) and unzip into `~/.claude/skills/`: +Download `visual-explainer-skill-vX.Y.Z.zip` from the [latest release](https://github.com/Cyber-Gen/visual-explainer-skill/releases/latest). + +#### Upload in Claude.ai / Claude Desktop + +Use the same skill upload flow in Claude.ai and Claude Desktop. Cowork, Chat, and Code should all accept the exact same `skill.zip`. + +1. Download `visual-explainer-skill-vX.Y.Z.zip`. +2. Open the skill installer / upload flow in Claude.ai or Claude Desktop. +3. Choose **Upload skill** and select the zip. +4. Confirm the install and enable `visual-explainer`. +5. Invoke it normally after install. + +#### Claude Code filesystem install ```bash mkdir -p ~/.claude/skills From f7cdbfcef3c7b482e5a8e9a6e8d59a3e9872abe0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 25 May 2026 21:58:15 +0000 Subject: [PATCH 5/5] docs: fix cloned plugin directory name Agent-Logs-Url: https://github.com/Cyber-Gen/visual-explainer-skill/sessions/91ab18eb-844f-4928-85e5-711dd4201ec8 Co-authored-by: Cyber-Gen <78339004+Cyber-Gen@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dcec02f..28cca87 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Use the same plugin upload flow in Claude.ai and Claude Desktop. Cowork, Chat, a ```bash git clone https://github.com/Cyber-Gen/visual-explainer-skill.git -claude --plugin-dir ./visual-explainer +claude --plugin-dir ./visual-explainer-skill ``` ### Option 2 — Skill only