@biggora/claude-plugins 1.1.1 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +3 -1
- package/README.md +24 -17
- package/package.json +1 -1
- package/registry/registry.json +319 -244
- package/specs/coding.md +24 -0
- package/specs/pod.md +2 -0
- package/src/skills/captcha/README.md +221 -0
- package/src/skills/captcha/SKILL.md +355 -0
- package/src/skills/captcha/references/captcha-types.md +254 -0
- package/src/skills/captcha/references/services.md +172 -0
- package/src/skills/captcha/references/stealth.md +238 -0
- package/src/skills/captcha/scripts/solve_captcha.py +323 -0
- package/src/skills/captcha/scripts/solve_image_grid.py +350 -0
- package/src/skills/codex-cli/SKILL.md +21 -11
- package/src/skills/gemini-cli/SKILL.md +27 -13
- package/src/skills/gemini-cli/references/commands.md +21 -14
- package/src/skills/gemini-cli/references/configuration.md +23 -18
- package/src/skills/gemini-cli/references/headless-and-scripting.md +7 -17
- package/src/skills/gemini-cli/references/mcp-and-extensions.md +12 -6
- package/src/skills/google-merchant-api/SKILL.md +581 -0
- package/src/skills/google-merchant-api/references/accounts.md +247 -0
- package/src/skills/google-merchant-api/references/content-api-legacy.md +216 -0
- package/src/skills/google-merchant-api/references/datasources.md +233 -0
- package/src/skills/google-merchant-api/references/inventories.md +201 -0
- package/src/skills/google-merchant-api/references/migration.md +267 -0
- package/src/skills/google-merchant-api/references/products.md +316 -0
- package/src/skills/google-merchant-api/references/promotions.md +201 -0
- package/src/skills/google-merchant-api/references/reports.md +240 -0
- package/src/skills/lv-aggregators-api/SKILL.md +113 -0
- package/src/skills/lv-aggregators-api/references/integration-guide.md +368 -0
- package/src/skills/lv-aggregators-api/references/kurpirkt.md +103 -0
- package/src/skills/lv-aggregators-api/references/salidzini.md +122 -0
- package/src/skills/notebook-lm/SKILL.md +1 -1
- package/src/skills/screen-recording/SKILL.md +243 -213
- package/src/skills/screen-recording/references/design-patterns.md +4 -2
- package/src/skills/screen-recording/references/ffmpeg-recording.md +473 -0
- package/src/skills/screen-recording/references/{approach1-programmatic.md → programmatic-generation.md} +45 -22
- package/src/skills/screen-recording/references/python-fallback.md +222 -0
- package/src/skills/tailwindcss-best-practices/SKILL.md +180 -0
- package/src/skills/tailwindcss-best-practices/references/best-practices-utility-patterns.md +87 -0
- package/src/skills/tailwindcss-best-practices/references/core-installation.md +109 -0
- package/src/skills/tailwindcss-best-practices/references/core-preflight.md +200 -0
- package/src/skills/tailwindcss-best-practices/references/core-responsive.md +163 -0
- package/src/skills/tailwindcss-best-practices/references/core-source-detection.md +114 -0
- package/src/skills/tailwindcss-best-practices/references/core-theme.md +108 -0
- package/src/skills/tailwindcss-best-practices/references/core-utility-classes.md +59 -0
- package/src/skills/tailwindcss-best-practices/references/core-variants.md +204 -0
- package/src/skills/tailwindcss-best-practices/references/effects-form-controls.md +76 -0
- package/src/skills/tailwindcss-best-practices/references/effects-mask.md +91 -0
- package/src/skills/tailwindcss-best-practices/references/effects-scroll-snap.md +59 -0
- package/src/skills/tailwindcss-best-practices/references/effects-text-shadow.md +78 -0
- package/src/skills/tailwindcss-best-practices/references/effects-transition-animation.md +80 -0
- package/src/skills/tailwindcss-best-practices/references/effects-visibility-interactivity.md +82 -0
- package/src/skills/tailwindcss-best-practices/references/features-content-detection.md +175 -0
- package/src/skills/tailwindcss-best-practices/references/features-custom-styles.md +203 -0
- package/src/skills/tailwindcss-best-practices/references/features-dark-mode.md +137 -0
- package/src/skills/tailwindcss-best-practices/references/features-functions-directives.md +241 -0
- package/src/skills/tailwindcss-best-practices/references/features-upgrade.md +160 -0
- package/src/skills/tailwindcss-best-practices/references/layout-aspect-ratio.md +39 -0
- package/src/skills/tailwindcss-best-practices/references/layout-columns.md +80 -0
- package/src/skills/tailwindcss-best-practices/references/layout-display.md +110 -0
- package/src/skills/tailwindcss-best-practices/references/layout-flexbox.md +112 -0
- package/src/skills/tailwindcss-best-practices/references/layout-grid.md +87 -0
- package/src/skills/tailwindcss-best-practices/references/layout-height.md +97 -0
- package/src/skills/tailwindcss-best-practices/references/layout-inset.md +103 -0
- package/src/skills/tailwindcss-best-practices/references/layout-logical-properties.md +92 -0
- package/src/skills/tailwindcss-best-practices/references/layout-margin.md +126 -0
- package/src/skills/tailwindcss-best-practices/references/layout-min-max-sizing.md +63 -0
- package/src/skills/tailwindcss-best-practices/references/layout-object-fit-position.md +64 -0
- package/src/skills/tailwindcss-best-practices/references/layout-overflow.md +57 -0
- package/src/skills/tailwindcss-best-practices/references/layout-padding.md +77 -0
- package/src/skills/tailwindcss-best-practices/references/layout-position.md +85 -0
- package/src/skills/tailwindcss-best-practices/references/layout-tables.md +67 -0
- package/src/skills/tailwindcss-best-practices/references/layout-width.md +102 -0
- package/src/skills/tailwindcss-best-practices/references/transform-base.md +68 -0
- package/src/skills/tailwindcss-best-practices/references/transform-rotate.md +70 -0
- package/src/skills/tailwindcss-best-practices/references/transform-scale.md +83 -0
- package/src/skills/tailwindcss-best-practices/references/transform-skew.md +62 -0
- package/src/skills/tailwindcss-best-practices/references/transform-translate.md +77 -0
- package/src/skills/tailwindcss-best-practices/references/typography-font-text.md +142 -0
- package/src/skills/tailwindcss-best-practices/references/typography-list-style.md +65 -0
- package/src/skills/tailwindcss-best-practices/references/typography-text-align.md +60 -0
- package/src/skills/tailwindcss-best-practices/references/visual-background.md +76 -0
- package/src/skills/tailwindcss-best-practices/references/visual-border.md +108 -0
- package/src/skills/tailwindcss-best-practices/references/visual-effects.md +111 -0
- package/src/skills/tailwindcss-best-practices/references/visual-svg.md +82 -0
- package/src/skills/test-mobile-app/SKILL.md +11 -6
- package/src/skills/test-mobile-app/scripts/analyze_apk.py +15 -4
- package/src/skills/test-mobile-app/scripts/check_environment.py +5 -5
- package/src/skills/test-mobile-app/scripts/run_tests.py +1 -1
- package/src/skills/test-web-ui/SKILL.md +264 -84
- package/src/skills/test-web-ui/scripts/discover.py +25 -12
- package/src/skills/test-web-ui/scripts/run_tests.py +3 -2
- package/src/skills/tm-search/SKILL.md +242 -106
- package/src/skills/tm-search/references/scraping-fallback.md +60 -95
- package/src/skills/tm-search/scripts/tm_search.py +453 -375
- package/src/skills/vite-best-practices/SKILL.md +115 -0
- package/src/skills/vite-best-practices/references/build-and-ssr.md +255 -0
- package/src/skills/vite-best-practices/references/core-config.md +231 -0
- package/src/skills/vite-best-practices/references/core-features.md +222 -0
- package/src/skills/vite-best-practices/references/core-plugin-api.md +294 -0
- package/src/skills/vite-best-practices/references/environment-api.md +108 -0
- package/src/skills/vite-best-practices/references/rolldown-migration.md +242 -0
- package/src/skills/screen-recording/references/approach2-xvfb.md +0 -232
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: visual-effects
|
|
3
|
+
description: Box shadow, opacity, mix-blend, and filter effects
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Effects
|
|
7
|
+
|
|
8
|
+
Utilities for box shadow, opacity, mix-blend, and filters.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
### Box shadow
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<div class="shadow-sm">Small</div>
|
|
16
|
+
<div class="shadow">Default</div>
|
|
17
|
+
<div class="shadow-md">Medium</div>
|
|
18
|
+
<div class="shadow-lg">Large</div>
|
|
19
|
+
<div class="shadow-xl">Extra large</div>
|
|
20
|
+
<div class="shadow-2xl">2xl</div>
|
|
21
|
+
<div class="shadow-none">None</div>
|
|
22
|
+
|
|
23
|
+
<div class="shadow-lg shadow-blue-500/50">Colored shadow</div>
|
|
24
|
+
<div class="shadow-[0_0_15px_rgba(0,0,0,0.2)]">Arbitrary</div>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Opacity
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<div class="opacity-0">Invisible</div>
|
|
31
|
+
<div class="opacity-50">50%</div>
|
|
32
|
+
<div class="opacity-100">Full</div>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Mix blend mode
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<div class="mix-blend-normal">Normal</div>
|
|
39
|
+
<div class="mix-blend-multiply">Multiply</div>
|
|
40
|
+
<div class="mix-blend-screen">Screen</div>
|
|
41
|
+
<div class="mix-blend-overlay">Overlay</div>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Backdrop blur and filter
|
|
45
|
+
|
|
46
|
+
```html
|
|
47
|
+
<div class="backdrop-blur-sm">Blur backdrop</div>
|
|
48
|
+
<div class="backdrop-blur-md">Medium blur</div>
|
|
49
|
+
<div class="backdrop-blur-none">No blur</div>
|
|
50
|
+
|
|
51
|
+
<div class="backdrop-opacity-50">Backdrop opacity</div>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Filter (blur, brightness, contrast, etc.)
|
|
55
|
+
|
|
56
|
+
```html
|
|
57
|
+
<div class="blur-sm">Blur</div>
|
|
58
|
+
<div class="brightness-90">Brightness</div>
|
|
59
|
+
<div class="contrast-125">Contrast</div>
|
|
60
|
+
<div class="grayscale">Grayscale</div>
|
|
61
|
+
<div class="invert">Invert</div>
|
|
62
|
+
<div class="sepia">Sepia</div>
|
|
63
|
+
<div class="blur-none">No filter</div>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Object fit (images/video)
|
|
67
|
+
|
|
68
|
+
```html
|
|
69
|
+
<img class="object-contain" /> <!-- Fit within bounds -->
|
|
70
|
+
<img class="object-cover" /> <!-- Cover area, may crop -->
|
|
71
|
+
<img class="object-fill" /> <!-- Stretch -->
|
|
72
|
+
<img class="object-none" /> <!-- No resize -->
|
|
73
|
+
<img class="object-scale-down" /> <!-- contain or none, whichever is smaller -->
|
|
74
|
+
<img class="object-top object-cover" /> <!-- Position -->
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Drop shadow with colors (v4.1+)
|
|
78
|
+
|
|
79
|
+
```html
|
|
80
|
+
<svg class="drop-shadow-xl drop-shadow-cyan-500/50">Logo</svg>
|
|
81
|
+
<img class="drop-shadow-lg drop-shadow-blue-500">Image</img>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Drop shadows can now take color utilities and opacity modifiers, just like box shadows.
|
|
85
|
+
|
|
86
|
+
### Shadow opacity modifiers (v4.1+)
|
|
87
|
+
|
|
88
|
+
All shadow types support opacity modifiers:
|
|
89
|
+
|
|
90
|
+
```html
|
|
91
|
+
<div class="shadow-lg/50">50% opacity box shadow</div>
|
|
92
|
+
<div class="drop-shadow-xl/75">75% opacity drop shadow</div>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Key Points
|
|
96
|
+
|
|
97
|
+
- Shadow: `shadow-{size}`, `shadow-{color}/opacity`, `shadow-none`
|
|
98
|
+
- Shadow opacity: `shadow-lg/50` (v4.1+)
|
|
99
|
+
- Drop shadow colors: `drop-shadow-{color}`, `drop-shadow-{color}/{opacity}` (v4.1+)
|
|
100
|
+
- Opacity: `opacity-{0-100}`
|
|
101
|
+
- Mix blend: `mix-blend-{mode}`
|
|
102
|
+
- Backdrop: `backdrop-blur-*`, `backdrop-opacity-*`
|
|
103
|
+
- Filter: `blur-*`, `brightness-*`, `contrast-*`, `grayscale`, `invert`, `sepia`
|
|
104
|
+
- **v4 scale shift**: v3's `shadow` → v4's `shadow-sm`, v3's `shadow-sm` → v4's `shadow-xs`
|
|
105
|
+
|
|
106
|
+
<!--
|
|
107
|
+
Source references:
|
|
108
|
+
- https://tailwindcss.com/docs/box-shadow
|
|
109
|
+
- https://tailwindcss.com/docs/opacity
|
|
110
|
+
- https://tailwindcss.com/docs/backdrop-blur
|
|
111
|
+
-->
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: visual-svg
|
|
3
|
+
description: Styling SVG elements with fill, stroke, and stroke-width utilities
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SVG Styling
|
|
7
|
+
|
|
8
|
+
Utilities for styling SVG fill and stroke. Essential when working with icon sets like Heroicons.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
### Fill
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<!-- Theme colors -->
|
|
16
|
+
<svg class="fill-blue-500">...</svg>
|
|
17
|
+
<svg class="fill-indigo-500 hover:fill-indigo-600">...</svg>
|
|
18
|
+
|
|
19
|
+
<!-- Inherit from text color -->
|
|
20
|
+
<button class="text-indigo-600 hover:text-white">
|
|
21
|
+
<svg class="size-5 fill-current">...</svg>
|
|
22
|
+
Check for updates
|
|
23
|
+
</button>
|
|
24
|
+
|
|
25
|
+
<!-- Special values -->
|
|
26
|
+
<svg class="fill-none">...</svg>
|
|
27
|
+
<svg class="fill-inherit">...</svg>
|
|
28
|
+
<svg class="fill-transparent">...</svg>
|
|
29
|
+
|
|
30
|
+
<!-- Custom -->
|
|
31
|
+
<svg class="fill-[#243c5a]">...</svg>
|
|
32
|
+
<svg class="fill-(--my-fill)">...</svg>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Stroke
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<!-- Theme colors -->
|
|
39
|
+
<svg class="stroke-cyan-500" fill="none">...</svg>
|
|
40
|
+
|
|
41
|
+
<!-- Inherit from text -->
|
|
42
|
+
<button class="text-pink-600 hover:text-white">
|
|
43
|
+
<svg class="size-5 stroke-current" fill="none">...</svg>
|
|
44
|
+
Download
|
|
45
|
+
</button>
|
|
46
|
+
|
|
47
|
+
<!-- Special values -->
|
|
48
|
+
<svg class="stroke-none stroke-inherit stroke-transparent">...</svg>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Stroke width
|
|
52
|
+
|
|
53
|
+
```html
|
|
54
|
+
<svg class="stroke-1">Thin stroke</svg>
|
|
55
|
+
<svg class="stroke-2">Medium stroke</svg>
|
|
56
|
+
<svg class="stroke-[1.5]">Custom width</svg>
|
|
57
|
+
<svg class="stroke-(length:--my-stroke)">Custom property</svg>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Combined
|
|
61
|
+
|
|
62
|
+
```html
|
|
63
|
+
<svg class="size-6 fill-blue-500 stroke-blue-700 stroke-2" fill="none">
|
|
64
|
+
<!-- Outlined icon with colored stroke -->
|
|
65
|
+
</svg>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Key Points
|
|
69
|
+
|
|
70
|
+
- `fill-*` / `stroke-*` - all theme colors (e.g. `fill-red-500`)
|
|
71
|
+
- `fill-current` / `stroke-current` - use current text color (common for icons in buttons)
|
|
72
|
+
- `fill-none` / `stroke-none` - no fill/stroke
|
|
73
|
+
- `stroke-1`, `stroke-2`, etc. - stroke width (number = px)
|
|
74
|
+
- Custom: `fill-[#hex]`, `stroke-(--var)`, `stroke-[1.5]`
|
|
75
|
+
- Use with variants: `hover:fill-blue-600`, `md:stroke-2`
|
|
76
|
+
|
|
77
|
+
<!--
|
|
78
|
+
Source references:
|
|
79
|
+
- https://tailwindcss.com/docs/fill
|
|
80
|
+
- https://tailwindcss.com/docs/stroke
|
|
81
|
+
- https://tailwindcss.com/docs/stroke-width
|
|
82
|
+
-->
|
|
@@ -151,15 +151,20 @@ python3 scripts/run_tests.py --apk path/to/app.apk --device emulator-5554 --outp
|
|
|
151
151
|
|
|
152
152
|
### Test Execution Without Emulator (Static Mode)
|
|
153
153
|
|
|
154
|
-
If no emulator is available
|
|
155
|
-
|
|
156
|
-
|
|
154
|
+
If no emulator is available (which is common — most users won't have Appium set up),
|
|
155
|
+
Claude can still provide significant value:
|
|
156
|
+
1. Analyze source code / screenshots / APK statically
|
|
157
|
+
2. Generate use cases and write all test scenarios
|
|
157
158
|
3. Mark execution status as `MANUAL_REQUIRED`
|
|
158
|
-
4. Generate a report with all test cases ready to be run manually
|
|
159
|
+
4. Generate a comprehensive report with all test cases ready to be run manually
|
|
160
|
+
5. Provide step-by-step manual testing instructions the user can follow
|
|
161
|
+
|
|
162
|
+
This is the **most common execution path** — don't treat it as a fallback.
|
|
163
|
+
Make the static report just as polished and detailed as the automated one.
|
|
159
164
|
|
|
160
165
|
Use `--static` flag:
|
|
161
166
|
```bash
|
|
162
|
-
python3 scripts/run_tests.py --static --output results/
|
|
167
|
+
python3 scripts/run_tests.py --static --tests tests.json --output results/
|
|
163
168
|
```
|
|
164
169
|
|
|
165
170
|
---
|
|
@@ -208,5 +213,5 @@ Read `references/report-template.md` for report structure details.
|
|
|
208
213
|
- **Locators**: Prefer `accessibility id` > `resource-id` > `xpath`. Never use index-based xpath.
|
|
209
214
|
- **Waits**: Always use explicit waits (`WebDriverWait`), never `time.sleep`.
|
|
210
215
|
- **Screenshots**: Capture on every assertion failure automatically.
|
|
211
|
-
- **Crash detection**: After every interaction, check for crash dialogs (`scripts/
|
|
216
|
+
- **Crash detection**: After every interaction, check for crash dialogs (the `check_for_crash()` function in `scripts/run_tests.py` handles this automatically).
|
|
212
217
|
- **Language**: Generate use cases and reports in the language the user is using.
|
|
@@ -50,10 +50,21 @@ def analyze_apk(apk_path: str) -> dict:
|
|
|
50
50
|
|
|
51
51
|
# String resources (sample)
|
|
52
52
|
try:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
# Try modern androguard API first, fall back to legacy
|
|
54
|
+
try:
|
|
55
|
+
from androguard.core.axml import AXMLPrinter
|
|
56
|
+
res_parser = apk.get_android_resources()
|
|
57
|
+
if res_parser:
|
|
58
|
+
strings = res_parser.get_resolved_strings()
|
|
59
|
+
if strings:
|
|
60
|
+
for lang_strings in strings.values():
|
|
61
|
+
result["strings_sample"] = list(lang_strings.values())[:30]
|
|
62
|
+
break
|
|
63
|
+
except (ImportError, AttributeError):
|
|
64
|
+
# Fallback: extract string-like values from manifest
|
|
65
|
+
manifest_xml = apk.get_android_manifest_xml()
|
|
66
|
+
if manifest_xml is not None:
|
|
67
|
+
result["strings_sample"] = []
|
|
57
68
|
except Exception:
|
|
58
69
|
pass
|
|
59
70
|
|
|
@@ -44,11 +44,12 @@ def check_appium_python():
|
|
|
44
44
|
|
|
45
45
|
def check_python_deps():
|
|
46
46
|
missing = []
|
|
47
|
-
|
|
47
|
+
pkg_map = {"pytest": "pytest", "jinja2": "jinja2", "PIL": "pillow"}
|
|
48
|
+
for import_name, install_name in pkg_map.items():
|
|
48
49
|
try:
|
|
49
|
-
__import__(
|
|
50
|
+
__import__(import_name)
|
|
50
51
|
except ImportError:
|
|
51
|
-
missing.append(
|
|
52
|
+
missing.append(install_name)
|
|
52
53
|
if missing:
|
|
53
54
|
raise RuntimeError(f"Missing packages: {missing}. Run: pip install {' '.join(missing)} --break-system-packages")
|
|
54
55
|
return "All Python deps OK"
|
|
@@ -66,12 +67,11 @@ def check_avd():
|
|
|
66
67
|
def main():
|
|
67
68
|
checks = [
|
|
68
69
|
("ADB", check_adb),
|
|
69
|
-
("Android
|
|
70
|
+
("Android Virtual Devices", check_avd),
|
|
70
71
|
("Connected Device/Emulator", check_emulator),
|
|
71
72
|
("Appium Server", check_appium_server),
|
|
72
73
|
("Appium Python Client", check_appium_python),
|
|
73
74
|
("Python Dependencies", check_python_deps),
|
|
74
|
-
("Android Virtual Devices", check_avd),
|
|
75
75
|
]
|
|
76
76
|
|
|
77
77
|
print("\n🔍 MOBILE TESTING ENVIRONMENT CHECK")
|