From b5123df02a0e0bfb56bf9e809d7e21d15ba1a905 Mon Sep 17 00:00:00 2001 From: Julian Lechner Date: Fri, 18 Sep 2026 15:47:16 +0200 Subject: [PATCH] fix(extensions): add Claude Superpowers marketplace --- adapters/plugins.tsv | 2 +- scripts/tests/test-managed-extensions.py | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/adapters/plugins.tsv b/adapters/plugins.tsv index 36ff5a1..bac1a20 100644 --- a/adapters/plugins.tsv +++ b/adapters/plugins.tsv @@ -1,7 +1,7 @@ name claude_marketplace claude_plugin codex_marketplace codex_plugin codex_method codex_source codex_skill mcporter_name mcporter_url Ponytail DietrichGebert/ponytail ponytail@ponytail DietrichGebert/ponytail ponytail@ponytail plugin - - i-have-adhd ayghri/i-have-adhd i-have-adhd@i-have-adhd ayghri/i-have-adhd i-have-adhd@i-have-adhd plugin - - -Superpowers - superpowers@claude-plugins-official openai-curated-remote superpowers@openai-curated-remote plugin - - +Superpowers anthropics/claude-plugins-official superpowers@claude-plugins-official openai-curated-remote superpowers@openai-curated-remote plugin - - Context7 upstash/context7 context7@context7-marketplace upstash/context7 context7@context7-marketplace plugin - - context7 https://mcp.context7.com/mcp Caveman JuliusBrussee/caveman caveman@caveman thinkhome-org/caveman-codex caveman@thinkhome-caveman plugin - - QMD tobi/qmd qmd@qmd - - qmd @tobilu/qmd qmd diff --git a/scripts/tests/test-managed-extensions.py b/scripts/tests/test-managed-extensions.py index d2d97a1..e34b90b 100644 --- a/scripts/tests/test-managed-extensions.py +++ b/scripts/tests/test-managed-extensions.py @@ -1,4 +1,5 @@ import contextlib +import csv import importlib.util import io import json @@ -11,7 +12,8 @@ import unittest from unittest.mock import patch -spec = importlib.util.spec_from_file_location('extensions', Path(__file__).parents[2] / 'scripts/lib/managed-extensions.py') +root = Path(__file__).parents[2] +spec = importlib.util.spec_from_file_location('extensions', root / 'scripts/lib/managed-extensions.py') extensions = importlib.util.module_from_spec(spec) spec.loader.exec_module(extensions) @@ -184,11 +186,12 @@ class ManagedExtensionTests(unittest.TestCase): ['claude', 'plugin', 'enable', 'example@test'], ], self.commands) - def test_claude_refreshes_marketplace_before_install(self): - entry = plugin('Superpowers') - entry['claude_plugin'] = 'superpowers@claude-plugins-official' + def test_superpowers_adds_official_claude_marketplace_before_install(self): + with (root / 'adapters/plugins.tsv').open(encoding='utf-8-sig', newline='') as stream: + entry = next(entry for entry in csv.DictReader(stream, delimiter='\t') if entry['name'] == 'Superpowers') self.manager().sync([entry], ['claude'], {'Superpowers'}) self.assertEqual([ + ['claude', 'plugin', 'marketplace', 'add', 'anthropics/claude-plugins-official'], ['claude', 'plugin', 'marketplace', 'update', 'claude-plugins-official'], ['claude', 'plugin', 'install', 'superpowers@claude-plugins-official', '--scope', 'user'], ], self.commands)