opencode-skills-collection 3.0.0-beta.1 → 3.0.1
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/bundled-skills/.antigravity-install-manifest.json +6 -1
- package/bundled-skills/brooks-lint/SKILL.md +137 -0
- package/bundled-skills/buywhere-product-catalog/SKILL.md +113 -0
- package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
- package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
- package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
- package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
- package/bundled-skills/docs/users/bundles.md +1 -1
- package/bundled-skills/docs/users/claude-code-skills.md +1 -1
- package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
- package/bundled-skills/docs/users/getting-started.md +1 -1
- package/bundled-skills/docs/users/kiro-integration.md +1 -1
- package/bundled-skills/docs/users/usage.md +4 -4
- package/bundled-skills/docs/users/visual-guide.md +4 -4
- package/bundled-skills/kubestellar-console/SKILL.md +96 -0
- package/bundled-skills/logic-lens/SKILL.md +125 -0
- package/bundled-skills/squirrel/SKILL.md +118 -0
- package/dist/skill-pointer/config-loader.d.ts +1 -0
- package/dist/skill-pointer/config-loader.js +5 -10
- package/dist/skill-pointer/index.js +2 -2
- package/dist/skill-pointer/pointer-generator.js +11 -1
- package/dist/skill-pointer/vault-installer.js +39 -2
- package/package.json +2 -2
- package/skills_index.json +110 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"updatedAt": "2026-
|
|
3
|
+
"updatedAt": "2026-05-01T01:51:53.950Z",
|
|
4
4
|
"entries": [
|
|
5
5
|
"00-andruia-consultant",
|
|
6
6
|
"007",
|
|
@@ -284,6 +284,7 @@
|
|
|
284
284
|
"brand-perception-psychologist",
|
|
285
285
|
"brevo-automation",
|
|
286
286
|
"broken-authentication",
|
|
287
|
+
"brooks-lint",
|
|
287
288
|
"browser-automation",
|
|
288
289
|
"browser-extension-builder",
|
|
289
290
|
"bug-hunter",
|
|
@@ -296,6 +297,7 @@
|
|
|
296
297
|
"burpsuite-project-parser",
|
|
297
298
|
"business-analyst",
|
|
298
299
|
"busybox-on-windows",
|
|
300
|
+
"buywhere-product-catalog",
|
|
299
301
|
"c-pro",
|
|
300
302
|
"c4-architecture-c4-architecture",
|
|
301
303
|
"c4-code",
|
|
@@ -760,6 +762,7 @@
|
|
|
760
762
|
"kpi-dashboard-design",
|
|
761
763
|
"kubernetes-architect",
|
|
762
764
|
"kubernetes-deployment",
|
|
765
|
+
"kubestellar-console",
|
|
763
766
|
"lambda-lang",
|
|
764
767
|
"lambdatest-agent-skills",
|
|
765
768
|
"landing-page-generator",
|
|
@@ -809,6 +812,7 @@
|
|
|
809
812
|
"llm-structured-output",
|
|
810
813
|
"local-legal-seo-audit",
|
|
811
814
|
"local-llm-expert",
|
|
815
|
+
"logic-lens",
|
|
812
816
|
"logistics-exception-management",
|
|
813
817
|
"loki-mode",
|
|
814
818
|
"loss-aversion-designer",
|
|
@@ -1227,6 +1231,7 @@
|
|
|
1227
1231
|
"sql-pro",
|
|
1228
1232
|
"sqlmap-database-pentesting",
|
|
1229
1233
|
"square-automation",
|
|
1234
|
+
"squirrel",
|
|
1230
1235
|
"sred-project-organizer",
|
|
1231
1236
|
"sred-work-summary",
|
|
1232
1237
|
"ssh-penetration-testing",
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brooks-lint
|
|
3
|
+
description: "AI code reviewer grounded in classic software engineering books for catching design smells, coupling issues, and architectural risks."
|
|
4
|
+
category: development
|
|
5
|
+
risk: safe
|
|
6
|
+
source: community
|
|
7
|
+
source_repo: hyhmrright/brooks-lint
|
|
8
|
+
source_type: community
|
|
9
|
+
license: "MIT"
|
|
10
|
+
license_source: "https://github.com/hyhmrright/brooks-lint/blob/main/LICENSE"
|
|
11
|
+
date_added: "2026-04-29"
|
|
12
|
+
author: hyhmrright
|
|
13
|
+
tags: [code-review, architecture, software-design, refactoring, claude-code]
|
|
14
|
+
tools: [claude, codex, cursor, gemini]
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Brooks Lint
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Brooks Lint is a Claude Code skill that reviews your code through the lens of 12 classic software engineering books. Instead of checking style rules, it asks: "What would the authors of *The Pragmatic Programmer*, *Clean Code*, and *Designing Data-Intensive Applications* say about this code?"
|
|
22
|
+
|
|
23
|
+
It synthesizes the principles from landmark engineering books into actionable, structured feedback — catching design smells, tight coupling, missing abstractions, and architectural risks that linters and AI tools typically miss.
|
|
24
|
+
|
|
25
|
+
Named after Fred Brooks, author of *The Mythical Man-Month* — because the hardest bugs are conceptual, not syntactic.
|
|
26
|
+
|
|
27
|
+
## The 12 Books
|
|
28
|
+
|
|
29
|
+
| Book | Key Principles Applied |
|
|
30
|
+
|------|----------------------|
|
|
31
|
+
| *The Pragmatic Programmer* | DRY, orthogonality, tracer bullets |
|
|
32
|
+
| *Clean Code* | Naming, function size, comment clarity |
|
|
33
|
+
| *The Mythical Man-Month* | Conceptual integrity, second-system effect |
|
|
34
|
+
| *Designing Data-Intensive Applications* | Data consistency, fault tolerance, scalability |
|
|
35
|
+
| *A Philosophy of Software Design* | Deep modules, information hiding, complexity |
|
|
36
|
+
| *Refactoring* | Code smells, extract method, encapsulation |
|
|
37
|
+
| *Working Effectively with Legacy Code* | Seams, characterization tests, dependency breaking |
|
|
38
|
+
| *Domain-Driven Design* | Ubiquitous language, bounded contexts, aggregates |
|
|
39
|
+
| *Release It!* | Stability patterns, timeouts, bulkheads, circuit breakers |
|
|
40
|
+
| *Structure and Interpretation of Computer Programs* | Abstraction, recursion, metalinguistic abstraction |
|
|
41
|
+
| *The Art of UNIX Programming* | Modularity, composability, rule of least surprise |
|
|
42
|
+
| *Extreme Programming Explained* | YAGNI, simple design, collective ownership |
|
|
43
|
+
|
|
44
|
+
## When to Use This Skill
|
|
45
|
+
|
|
46
|
+
- Use when you want architectural feedback beyond what linters provide
|
|
47
|
+
- Use before major refactors to identify structural debt
|
|
48
|
+
- Use when reviewing code that "works but feels wrong"
|
|
49
|
+
- Use when onboarding to a codebase to quickly map risk areas
|
|
50
|
+
- Use for design reviews before starting a new module or service
|
|
51
|
+
|
|
52
|
+
## How It Works
|
|
53
|
+
|
|
54
|
+
Brooks Lint applies each book's core principles as a review lens:
|
|
55
|
+
|
|
56
|
+
1. **Smell detection**: Flags violations of DRY, SRP, Law of Demeter, etc.
|
|
57
|
+
2. **Coupling analysis**: Identifies tight dependencies and missing abstraction layers
|
|
58
|
+
3. **Naming critique**: Applies Clean Code naming rules to variables, methods, classes
|
|
59
|
+
4. **Architecture review**: Checks for DDIA-style data consistency and fault tolerance gaps
|
|
60
|
+
5. **Stability patterns**: Flags missing timeouts, retries, and circuit breakers (Release It!)
|
|
61
|
+
6. **Complexity scoring**: Applies APOSD complexity metrics to identify over-engineered sections
|
|
62
|
+
|
|
63
|
+
## Installation
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Install via Claude Code plugin marketplace
|
|
67
|
+
# Search: "brooks-lint" in Claude Code > Extensions
|
|
68
|
+
|
|
69
|
+
# Or install via NPX (Antigravity)
|
|
70
|
+
npx antigravity-awesome-skills --claude
|
|
71
|
+
# Then invoke: @brooks-lint
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Examples
|
|
75
|
+
|
|
76
|
+
### Example 1: Review a Service Class
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
@brooks-lint review src/services/PaymentService.ts
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Brooks Lint output:**
|
|
83
|
+
```
|
|
84
|
+
[Pragmatic Programmer] DRY violation: payment validation logic duplicated in 3 places
|
|
85
|
+
[Clean Code] Method processPayment() does 4 things — violates Single Responsibility
|
|
86
|
+
[Release It!] No timeout on external payment gateway call — risk of cascade failure
|
|
87
|
+
[DDIA] No idempotency key — retry on network error will double-charge
|
|
88
|
+
[APOSD] PaymentService knows too much about UserRepository — high coupling
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Example 2: Full Codebase Architecture Review
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
@brooks-lint analyze the overall architecture of this codebase
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Example 3: Pre-Refactor Review
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
@brooks-lint what are the biggest design smells in this module before I refactor it?
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Review Categories
|
|
104
|
+
|
|
105
|
+
| Category | Books Applied | What It Catches |
|
|
106
|
+
|----------|--------------|-----------------|
|
|
107
|
+
| **DRY / Duplication** | PP, Refactoring | Copy-paste code, shared logic not extracted |
|
|
108
|
+
| **Naming** | Clean Code, DDD | Unclear names, domain language violations |
|
|
109
|
+
| **Coupling** | APOSD, PP | Tight dependencies, missing interfaces |
|
|
110
|
+
| **Stability** | Release It! | Missing timeouts, no retry logic, no circuit breakers |
|
|
111
|
+
| **Data Integrity** | DDIA | Race conditions, non-idempotent operations |
|
|
112
|
+
| **Complexity** | APOSD, SICP | Over-engineering, unnecessary abstraction |
|
|
113
|
+
| **Legacy Debt** | WELC | Hard-to-test code, missing seams |
|
|
114
|
+
| **Domain Clarity** | DDD, XP | Anemic models, missing bounded contexts |
|
|
115
|
+
|
|
116
|
+
## Best Practices
|
|
117
|
+
|
|
118
|
+
- Run `@brooks-lint` after writing new service layers or data pipelines
|
|
119
|
+
- Combine with `@logic-lens` for full coverage: logic bugs + design smells
|
|
120
|
+
- Use `@brooks-lint analyze architecture` weekly on growing codebases
|
|
121
|
+
- Focus on CRITICAL and HIGH findings first — LOW findings are style suggestions
|
|
122
|
+
|
|
123
|
+
## Related Skills
|
|
124
|
+
|
|
125
|
+
- `@logic-lens` — Complementary: catches logic bugs; brooks-lint catches design issues
|
|
126
|
+
- `@security-auditor` — Specialized security-only deep scan
|
|
127
|
+
- `@lint-and-validate` — Style/syntax linting to run alongside design review
|
|
128
|
+
|
|
129
|
+
## Additional Resources
|
|
130
|
+
|
|
131
|
+
- [GitHub Repository](https://github.com/hyhmrright/brooks-lint)
|
|
132
|
+
- [Dev.to Article: I Synthesized 12 Classic Engineering Books into an AI Code Reviewer](https://dev.to/hyhmrright/i-synthesized-12-classic-engineering-books-into-an-ai-code-reviewer-heres-what-it-caught-3ed1)
|
|
133
|
+
- [Related skill: logic-lens](https://github.com/hyhmrright/logic-lens)
|
|
134
|
+
|
|
135
|
+
## Limitations
|
|
136
|
+
|
|
137
|
+
Use this skill only when the task clearly matches the scope described above (design review and architectural analysis). Brooks Lint applies AI-powered analysis grounded in established engineering principles. It should complement — not replace — human design review for production-critical decisions. Results reflect the principles of the 12 source books and may not apply to all architectural styles or domains.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: buywhere-product-catalog
|
|
3
|
+
description: "Use BuyWhere's MCP and API surfaces to add product search, price comparison, and deal discovery to AI shopping agents."
|
|
4
|
+
category: ecommerce
|
|
5
|
+
risk: safe
|
|
6
|
+
source: official
|
|
7
|
+
source_repo: BuyWhere/buywhere-cursor-plugin
|
|
8
|
+
source_type: official
|
|
9
|
+
license: "Not declared"
|
|
10
|
+
license_source: "https://github.com/BuyWhere/buywhere-cursor-plugin"
|
|
11
|
+
date_added: "2026-04-29"
|
|
12
|
+
author: BuyWhere
|
|
13
|
+
tags: [buywhere, ecommerce, shopping, mcp, api, product-catalog]
|
|
14
|
+
tools: [claude, cursor, codex, gemini]
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# BuyWhere Product Catalog
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
BuyWhere gives AI agents a product-catalog surface for shopping flows, price comparison, and deal discovery. Use this skill when you want an agent to connect product search or merchant-aware commerce actions through BuyWhere's MCP setup path or API onboarding flow.
|
|
22
|
+
|
|
23
|
+
The safest public starting points are the live developer portal, API key signup flow, MCP guide, and the official Cursor plugin repository.
|
|
24
|
+
|
|
25
|
+
## When to Use This Skill
|
|
26
|
+
|
|
27
|
+
- Use when you want to add structured product search to an AI shopping or recommendation agent.
|
|
28
|
+
- Use when the user asks for BuyWhere MCP setup in Cursor, Claude Desktop, or a custom agent runtime.
|
|
29
|
+
- Use when you need a concrete onboarding path for BuyWhere API keys, MCP configuration, or plugin discovery.
|
|
30
|
+
|
|
31
|
+
## How It Works
|
|
32
|
+
|
|
33
|
+
### Step 1: Choose the integration surface
|
|
34
|
+
|
|
35
|
+
Start from the public BuyWhere entry point that matches the user's setup:
|
|
36
|
+
|
|
37
|
+
- Developer portal: `https://buywhere.ai/developers/`
|
|
38
|
+
- API key signup: `https://buywhere.ai/api-keys/`
|
|
39
|
+
- MCP integration guide: `https://api.buywhere.ai/docs/guides/mcp`
|
|
40
|
+
- Cursor plugin repo: `https://github.com/BuyWhere/buywhere-cursor-plugin`
|
|
41
|
+
|
|
42
|
+
### Step 2: Confirm the user's runtime
|
|
43
|
+
|
|
44
|
+
Ask which host the user is integrating with before giving setup instructions:
|
|
45
|
+
|
|
46
|
+
- Cursor or another MCP-capable coding assistant
|
|
47
|
+
- Claude Desktop
|
|
48
|
+
- A custom MCP client
|
|
49
|
+
- A direct REST API integration
|
|
50
|
+
|
|
51
|
+
Do not assume the same config file or launch command works across all hosts.
|
|
52
|
+
|
|
53
|
+
### Step 3: Guide the first successful connection
|
|
54
|
+
|
|
55
|
+
Prefer a minimal first-run path:
|
|
56
|
+
|
|
57
|
+
1. Get a BuyWhere API key.
|
|
58
|
+
2. Follow the MCP or plugin setup path for the host runtime.
|
|
59
|
+
3. Run one simple product-search request before expanding to comparison or deal workflows.
|
|
60
|
+
|
|
61
|
+
### Step 4: Expand into commerce workflows
|
|
62
|
+
|
|
63
|
+
Once the first query works, help the user branch into the next layer:
|
|
64
|
+
|
|
65
|
+
- product search and discovery
|
|
66
|
+
- price comparison across merchants
|
|
67
|
+
- deal discovery flows
|
|
68
|
+
- shopping-agent orchestration that routes users to merchant destinations
|
|
69
|
+
|
|
70
|
+
## Examples
|
|
71
|
+
|
|
72
|
+
### Example 1: Cursor plugin discovery
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
Use BuyWhere Product Catalog to help me connect BuyWhere inside Cursor and verify one product-search query.
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Example 2: MCP onboarding
|
|
79
|
+
|
|
80
|
+
```text
|
|
81
|
+
Use BuyWhere Product Catalog to set up BuyWhere MCP for my shopping agent and keep the first test minimal.
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Best Practices
|
|
85
|
+
|
|
86
|
+
- ✅ Start from the live developer portal or API key flow before giving configuration details.
|
|
87
|
+
- ✅ Keep the first proof of integration to one successful query.
|
|
88
|
+
- ✅ Ask which MCP host or API runtime the user is using.
|
|
89
|
+
- ❌ Do not claim a specific product-count or retailer-count unless you have current runtime evidence.
|
|
90
|
+
- ❌ Do not send users to deprecated or broken documentation surfaces when a working public page exists.
|
|
91
|
+
|
|
92
|
+
## Limitations
|
|
93
|
+
|
|
94
|
+
- This skill does not replace environment-specific validation inside the target MCP host or API client.
|
|
95
|
+
- Public BuyWhere surfaces can change, so re-check live URLs when precise setup details matter.
|
|
96
|
+
|
|
97
|
+
## Security & Safety Notes
|
|
98
|
+
|
|
99
|
+
- Treat API keys as secrets. Use placeholders in examples and never paste live credentials into chat, docs, or screenshots.
|
|
100
|
+
- Confirm the user's target host before suggesting filesystem paths, launch commands, or local config edits.
|
|
101
|
+
|
|
102
|
+
## Common Pitfalls
|
|
103
|
+
|
|
104
|
+
- **Problem:** The user wants BuyWhere setup help but has not created an API key yet.
|
|
105
|
+
**Solution:** Start at `https://buywhere.ai/api-keys/` and only move to config after that step is complete.
|
|
106
|
+
|
|
107
|
+
- **Problem:** A documentation hostname is unavailable.
|
|
108
|
+
**Solution:** Prefer the live developer portal, API key flow, MCP guide on `api.buywhere.ai`, and the official GitHub plugin repo.
|
|
109
|
+
|
|
110
|
+
## Related Skills
|
|
111
|
+
|
|
112
|
+
- `@api-design-principles` - Use when the user needs API-shape guidance around a commerce integration.
|
|
113
|
+
- `@mcp-builder` - Use when the user is building or extending an MCP server rather than consuming one.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Jetski/Cortex + Gemini Integration Guide
|
|
3
|
-
description: "Use antigravity-awesome-skills with Jetski/Cortex without hitting context-window overflow with 1,
|
|
3
|
+
description: "Use antigravity-awesome-skills with Jetski/Cortex without hitting context-window overflow with 1,441+ skills."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Jetski/Cortex + Gemini: safe integration with 1,
|
|
6
|
+
# Jetski/Cortex + Gemini: safe integration with 1,441+ skills
|
|
7
7
|
|
|
8
8
|
This guide shows how to integrate the `antigravity-awesome-skills` repository with an agent based on **Jetski/Cortex + Gemini** (or similar frameworks) **without exceeding the model context window**.
|
|
9
9
|
|
|
@@ -23,7 +23,7 @@ Never do:
|
|
|
23
23
|
- concatenate all `SKILL.md` content into a single system prompt;
|
|
24
24
|
- re-inject the entire library for **every** request.
|
|
25
25
|
|
|
26
|
-
With 1,
|
|
26
|
+
With 1,441+ skills, this approach fills the context window before user messages are even added, causing truncation.
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
@@ -20,7 +20,7 @@ This example shows one way to integrate **antigravity-awesome-skills** with a Je
|
|
|
20
20
|
- How to enforce a **maximum number of skills per turn** via `maxSkillsPerTurn`.
|
|
21
21
|
- How to choose whether to **truncate or error** when too many skills are requested via `overflowBehavior`.
|
|
22
22
|
|
|
23
|
-
This pattern avoids context overflow when you have 1,
|
|
23
|
+
This pattern avoids context overflow when you have 1,441+ skills installed.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -6,7 +6,7 @@ This document keeps the repository's GitHub-facing discovery copy aligned with t
|
|
|
6
6
|
|
|
7
7
|
Preferred positioning:
|
|
8
8
|
|
|
9
|
-
> Installable GitHub library of 1,
|
|
9
|
+
> Installable GitHub library of 1,441+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and other AI coding assistants.
|
|
10
10
|
|
|
11
11
|
Key framing:
|
|
12
12
|
|
|
@@ -20,7 +20,7 @@ Key framing:
|
|
|
20
20
|
|
|
21
21
|
Preferred description:
|
|
22
22
|
|
|
23
|
-
> Installable GitHub library of 1,
|
|
23
|
+
> Installable GitHub library of 1,441+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.
|
|
24
24
|
|
|
25
25
|
Preferred homepage:
|
|
26
26
|
|
|
@@ -28,7 +28,7 @@ Preferred homepage:
|
|
|
28
28
|
|
|
29
29
|
Preferred social preview:
|
|
30
30
|
|
|
31
|
-
- use a clean preview image that says `1,
|
|
31
|
+
- use a clean preview image that says `1,441+ Agentic Skills`;
|
|
32
32
|
- mention Claude Code, Cursor, Codex CLI, and Gemini CLI;
|
|
33
33
|
- avoid dense text and tiny logos that disappear in social cards.
|
|
34
34
|
|
|
@@ -69,7 +69,7 @@ For manual updates, you need:
|
|
|
69
69
|
The update process refreshes:
|
|
70
70
|
- Skills index (`skills_index.json`)
|
|
71
71
|
- Web app skills data (`apps\web-app\public\skills.json`)
|
|
72
|
-
- All 1,
|
|
72
|
+
- All 1,441+ skills from the skills directory
|
|
73
73
|
|
|
74
74
|
## When to Update
|
|
75
75
|
|
|
@@ -12,7 +12,7 @@ Install the library into Claude Code, then invoke focused skills directly in the
|
|
|
12
12
|
|
|
13
13
|
## Why use this repo for Claude Code
|
|
14
14
|
|
|
15
|
-
- It includes 1,
|
|
15
|
+
- It includes 1,441+ skills instead of a narrow single-domain starter pack.
|
|
16
16
|
- It supports the standard `.claude/skills/` path and the Claude Code plugin marketplace flow.
|
|
17
17
|
- It also ships generated bundle plugins so teams can install focused packs like `Essentials` or `Security Developer` from the marketplace metadata.
|
|
18
18
|
- It includes onboarding docs, bundles, and workflows so new users do not need to guess where to begin.
|
|
@@ -12,7 +12,7 @@ Install into the Gemini skills path, then ask Gemini to apply one skill at a tim
|
|
|
12
12
|
|
|
13
13
|
- It installs directly into the expected Gemini skills path.
|
|
14
14
|
- It includes both core software engineering skills and deeper agent/LLM-oriented skills.
|
|
15
|
-
- It helps new users get started with bundles and workflows rather than forcing a cold start from 1,
|
|
15
|
+
- It helps new users get started with bundles and workflows rather than forcing a cold start from 1,441+ files.
|
|
16
16
|
- It is useful whether you want a broad internal skill library or a single repo to test many workflows quickly.
|
|
17
17
|
|
|
18
18
|
## Install Gemini CLI Skills
|
|
@@ -18,7 +18,7 @@ Kiro is AWS's agentic AI IDE that combines:
|
|
|
18
18
|
|
|
19
19
|
Kiro's agentic capabilities are enhanced by skills that provide:
|
|
20
20
|
|
|
21
|
-
- **Domain expertise** across 1,
|
|
21
|
+
- **Domain expertise** across 1,441+ specialized areas
|
|
22
22
|
- **Best practices** from Anthropic, OpenAI, Google, Microsoft, and AWS
|
|
23
23
|
- **Workflow automation** for common development tasks
|
|
24
24
|
- **AWS-specific patterns** for serverless, infrastructure, and cloud architecture
|
|
@@ -14,7 +14,7 @@ If you came in through a **Claude Code** or **Codex** plugin instead of a full l
|
|
|
14
14
|
|
|
15
15
|
When you ran `npx antigravity-awesome-skills` or cloned the repository, you:
|
|
16
16
|
|
|
17
|
-
✅ **Downloaded 1,
|
|
17
|
+
✅ **Downloaded 1,441+ skill files** to your computer (default: `~/.gemini/antigravity/skills/`; or a custom path like `~/.agent/skills/` if you used `--path`)
|
|
18
18
|
✅ **Made them available** to your AI assistant
|
|
19
19
|
❌ **Did NOT enable them all automatically** (they're just sitting there, waiting)
|
|
20
20
|
|
|
@@ -34,7 +34,7 @@ Bundles are **curated groups** of skills organized by role. They help you decide
|
|
|
34
34
|
|
|
35
35
|
**Analogy:**
|
|
36
36
|
|
|
37
|
-
- You installed a toolbox with 1,
|
|
37
|
+
- You installed a toolbox with 1,441+ tools (✅ done)
|
|
38
38
|
- Bundles are like **labeled organizer trays** saying: "If you're a carpenter, start with these 10 tools"
|
|
39
39
|
- You can either **pick skills from the tray** or install that tray as a focused marketplace bundle plugin
|
|
40
40
|
|
|
@@ -212,7 +212,7 @@ Let's actually use a skill right now. Follow these steps:
|
|
|
212
212
|
|
|
213
213
|
## Step 5: Picking Your First Skills (Practical Advice)
|
|
214
214
|
|
|
215
|
-
Don't try to use all 1,
|
|
215
|
+
Don't try to use all 1,441+ skills at once. Here's a sensible approach:
|
|
216
216
|
|
|
217
217
|
If you want a tool-specific starting point before choosing skills, use:
|
|
218
218
|
|
|
@@ -343,7 +343,7 @@ Usually no, but if your AI doesn't recognize a skill:
|
|
|
343
343
|
|
|
344
344
|
### "Can I load all skills into the model at once?"
|
|
345
345
|
|
|
346
|
-
No. Even though you have 1,
|
|
346
|
+
No. Even though you have 1,441+ skills installed locally, you should **not** concatenate every `SKILL.md` into a single system prompt or context block.
|
|
347
347
|
|
|
348
348
|
The intended pattern is:
|
|
349
349
|
|
|
@@ -34,7 +34,7 @@ antigravity-awesome-skills/
|
|
|
34
34
|
├── 📄 CONTRIBUTING.md ← Contributor workflow
|
|
35
35
|
├── 📄 CATALOG.md ← Full generated catalog
|
|
36
36
|
│
|
|
37
|
-
├── 📁 skills/ ← 1,
|
|
37
|
+
├── 📁 skills/ ← 1,441+ skills live here
|
|
38
38
|
│ │
|
|
39
39
|
│ ├── 📁 brainstorming/
|
|
40
40
|
│ │ └── 📄 SKILL.md ← Skill definition
|
|
@@ -47,7 +47,7 @@ antigravity-awesome-skills/
|
|
|
47
47
|
│ │ └── 📁 2d-games/
|
|
48
48
|
│ │ └── 📄 SKILL.md ← Nested skills also supported
|
|
49
49
|
│ │
|
|
50
|
-
│ └── ... (1,
|
|
50
|
+
│ └── ... (1,441+ total)
|
|
51
51
|
│
|
|
52
52
|
├── 📁 apps/
|
|
53
53
|
│ └── 📁 web-app/ ← Interactive browser
|
|
@@ -100,7 +100,7 @@ antigravity-awesome-skills/
|
|
|
100
100
|
|
|
101
101
|
```
|
|
102
102
|
┌─────────────────────────┐
|
|
103
|
-
│ 1,
|
|
103
|
+
│ 1,441+ SKILLS │
|
|
104
104
|
└────────────┬────────────┘
|
|
105
105
|
│
|
|
106
106
|
┌────────────────────────┼────────────────────────┐
|
|
@@ -201,7 +201,7 @@ If you want a workspace-style manual install instead, cloning into `.agent/skill
|
|
|
201
201
|
│ ├── 📁 brainstorming/ │
|
|
202
202
|
│ ├── 📁 stripe-integration/ │
|
|
203
203
|
│ ├── 📁 react-best-practices/ │
|
|
204
|
-
│ └── ... (1,
|
|
204
|
+
│ └── ... (1,441+ total) │
|
|
205
205
|
└─────────────────────────────────────────┘
|
|
206
206
|
```
|
|
207
207
|
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kubestellar-console
|
|
3
|
+
description: "Multi-cluster Kubernetes dashboard with AI-powered operations via MCP server and 10+ built-in agent skills"
|
|
4
|
+
category: devops
|
|
5
|
+
risk: critical
|
|
6
|
+
source: community
|
|
7
|
+
source_repo: kubestellar/console
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: "2026-04-27"
|
|
10
|
+
author: kubestellar
|
|
11
|
+
tags: [kubernetes, multi-cluster, mcp, dashboard, cncf, devops, observability]
|
|
12
|
+
tools: [claude, cursor, gemini, codex]
|
|
13
|
+
license: "Apache-2.0"
|
|
14
|
+
license_source: "https://github.com/kubestellar/console/blob/main/LICENSE"
|
|
15
|
+
plugin:
|
|
16
|
+
setup:
|
|
17
|
+
type: manual
|
|
18
|
+
summary: "Requires kc-agent binary (brew tap kubestellar/tap && brew install kc-agent)"
|
|
19
|
+
docs: "https://github.com/kubestellar/console#quick-start"
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# KubeStellar Console
|
|
23
|
+
|
|
24
|
+
## Overview
|
|
25
|
+
|
|
26
|
+
KubeStellar Console is an open-source multi-cluster Kubernetes dashboard (CNCF project) with AI-powered operations. It ships with `kc-agent`, an MCP server that bridges coding agents to kubeconfig and Kubernetes APIs, plus 10+ built-in agent skills for development, testing, and operations.
|
|
27
|
+
|
|
28
|
+
## When to Use This Skill
|
|
29
|
+
|
|
30
|
+
- Use when managing multiple Kubernetes clusters across edge and cloud
|
|
31
|
+
- Use when you need AI-assisted Kubernetes troubleshooting and debugging
|
|
32
|
+
- Use when running performance tests, cache compliance checks, or CI debugging on a Kubernetes dashboard
|
|
33
|
+
- Use when integrating with CNCF projects (Argo, Kyverno, Istio, and 20+ others)
|
|
34
|
+
|
|
35
|
+
## How It Works
|
|
36
|
+
|
|
37
|
+
### Step 1: Install kc-agent
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
brew tap kubestellar/tap && brew install kc-agent
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Step 2: Start the MCP server
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
kc-agent
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
This bridges your kubeconfig to any MCP-compatible coding agent.
|
|
50
|
+
|
|
51
|
+
### Step 3: Use built-in agent skills
|
|
52
|
+
|
|
53
|
+
The project ships with agent skills accessible via `CLAUDE.md` and `AGENTS.md`:
|
|
54
|
+
|
|
55
|
+
- **@perf-test** — Dashboard performance testing and TTFI analysis
|
|
56
|
+
- **@cache-test** — Card cache compliance testing (IndexedDB warm return)
|
|
57
|
+
- **@nav-test** — Navigation performance testing
|
|
58
|
+
- **@ui-compliance-test** — Card loading compliance (8 criteria, 150+ cards)
|
|
59
|
+
- **@ci-status** — CI pipeline monitoring and status checks
|
|
60
|
+
- **@rca** — Root cause analysis for CI/test failures
|
|
61
|
+
- **@tdd** — Test-driven development workflow
|
|
62
|
+
- **@k8s-debug** — Kubernetes debugging and troubleshooting
|
|
63
|
+
|
|
64
|
+
## Key Features
|
|
65
|
+
|
|
66
|
+
- Multi-cluster management across edge and cloud
|
|
67
|
+
- Real-time streaming observability
|
|
68
|
+
- 20+ CNCF project integrations (Argo, Kyverno, Istio, etc.)
|
|
69
|
+
- GitHub OAuth authentication
|
|
70
|
+
- Supply chain security (SBOM, SLSA)
|
|
71
|
+
- SQLite WASM caching with stale-while-revalidate pattern
|
|
72
|
+
- 15+ themes with dark/light mode
|
|
73
|
+
|
|
74
|
+
## Security & Safety Notes
|
|
75
|
+
|
|
76
|
+
- **Critical risk:** `kc-agent` bridges your kubeconfig to MCP-compatible agents. If your kubeconfig carries cluster-admin or write permissions, agents will inherit those capabilities. Always use a least-privilege RBAC context.
|
|
77
|
+
- **Recommended:** Bind `kc-agent` to least-privilege read-only RBAC before using it with an agent:
|
|
78
|
+
```bash
|
|
79
|
+
kubectl create clusterrole kc-agent-readonly --verb=get,list,watch --resource='*'
|
|
80
|
+
kubectl create clusterrolebinding kc-agent-readonly --clusterrole=kc-agent-readonly --serviceaccount=default:kc-agent
|
|
81
|
+
```
|
|
82
|
+
- Do not expose `kc-agent` on a public network without authentication.
|
|
83
|
+
- Review [SECURITY-AI.md](https://github.com/kubestellar/console/blob/main/docs/security/SECURITY-AI.md) for prompt injection and agent drift mitigations.
|
|
84
|
+
|
|
85
|
+
## Limitations
|
|
86
|
+
|
|
87
|
+
- This skill requires an external binary (`kc-agent`) installed separately via Homebrew.
|
|
88
|
+
- Do not treat agent output as a substitute for environment-specific validation or expert review.
|
|
89
|
+
- Stop and ask for clarification if required permissions or safety boundaries are unclear.
|
|
90
|
+
|
|
91
|
+
## Links
|
|
92
|
+
|
|
93
|
+
- [GitHub](https://github.com/kubestellar/console)
|
|
94
|
+
- [Website](https://console.kubestellar.io)
|
|
95
|
+
- [CLAUDE.md](https://github.com/kubestellar/console/blob/main/CLAUDE.md)
|
|
96
|
+
- [AGENTS.md](https://github.com/kubestellar/console/blob/main/AGENTS.md)
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: logic-lens
|
|
3
|
+
description: "AI-powered Claude Code skill that performs deep code review using formal logic and reasoning frameworks to detect bugs, anti-patterns, and security risks beyond what linters catch."
|
|
4
|
+
category: development
|
|
5
|
+
risk: safe
|
|
6
|
+
source: community
|
|
7
|
+
source_repo: hyhmrright/logic-lens
|
|
8
|
+
source_type: community
|
|
9
|
+
license: "MIT"
|
|
10
|
+
license_source: "https://github.com/hyhmrright/logic-lens/blob/main/LICENSE"
|
|
11
|
+
date_added: "2026-04-29"
|
|
12
|
+
author: hyhmrright
|
|
13
|
+
tags: [code-review, logic-analysis, debugging, security-review, claude-code]
|
|
14
|
+
tools: [claude, codex, cursor, gemini]
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Logic Lens
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Logic Lens is a Claude Code skill that performs deep, logic-driven code review using formal reasoning frameworks. Unlike traditional linters that check syntax and style, Logic Lens analyzes your code for logical errors, race conditions, security vulnerabilities, type mismatches, and algorithmic flaws that only appear when you reason through the code's behavior.
|
|
22
|
+
|
|
23
|
+
Powered by structured AI analysis, Logic Lens applies systematic logical inspection across 9 risk categories: null/undefined handling, type safety, concurrency, resource management, security injection, boundary conditions, algorithm correctness, state management, and API contract violations.
|
|
24
|
+
|
|
25
|
+
## When to Use This Skill
|
|
26
|
+
|
|
27
|
+
- Use when you want a thorough logic review before merging a PR
|
|
28
|
+
- Use when a bug seems hard to find and standard linters aren't helping
|
|
29
|
+
- Use when reviewing security-sensitive code paths (auth, payments, file access)
|
|
30
|
+
- Use when refactoring complex business logic
|
|
31
|
+
- Use when onboarding to a new codebase and need to understand risk areas
|
|
32
|
+
|
|
33
|
+
## How It Works
|
|
34
|
+
|
|
35
|
+
Logic Lens uses Claude Code's reasoning capabilities to:
|
|
36
|
+
|
|
37
|
+
1. Parse code structure and build a mental model of data flow
|
|
38
|
+
2. Apply formal logic checks across 9 risk categories
|
|
39
|
+
3. Trace execution paths for edge cases and boundary conditions
|
|
40
|
+
4. Identify security anti-patterns (injection, privilege escalation, data leakage)
|
|
41
|
+
5. Report findings with severity levels and actionable fix suggestions
|
|
42
|
+
|
|
43
|
+
## Installation
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# Install via Claude Code plugin marketplace
|
|
47
|
+
# Search: "logic-lens" in Claude Code > Extensions
|
|
48
|
+
|
|
49
|
+
# Or install via NPX (Antigravity)
|
|
50
|
+
npx antigravity-awesome-skills --claude
|
|
51
|
+
# Then invoke: @logic-lens
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Examples
|
|
55
|
+
|
|
56
|
+
### Example 1: Review a Single File
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
@logic-lens review src/auth/login.ts for security issues
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Logic Lens output:**
|
|
63
|
+
```
|
|
64
|
+
[CRITICAL] SQL Injection risk at line 42: user input concatenated into query string
|
|
65
|
+
[HIGH] Missing rate limiting on login attempts
|
|
66
|
+
[MEDIUM] Password comparison uses == instead of timing-safe comparison
|
|
67
|
+
[LOW] Error messages may leak valid usernames (user enumeration)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Example 2: Full Repository Scan
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
@logic-lens scan the entire codebase and prioritize by severity
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Example 3: Pre-PR Review
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
@logic-lens review all files changed in this branch before I open a PR
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## The 9 Risk Categories
|
|
83
|
+
|
|
84
|
+
| Category | What It Checks |
|
|
85
|
+
|----------|----------------|
|
|
86
|
+
| **Null/Undefined** | Missing null checks, optional chaining gaps |
|
|
87
|
+
| **Type Safety** | Implicit coercions, any-typed boundaries |
|
|
88
|
+
| **Concurrency** | Race conditions, shared mutable state |
|
|
89
|
+
| **Resource Management** | Unclosed handles, memory leaks |
|
|
90
|
+
| **Security Injection** | SQL/XSS/Command injection, path traversal |
|
|
91
|
+
| **Boundary Conditions** | Off-by-one errors, integer overflow |
|
|
92
|
+
| **Algorithm Correctness** | Wrong complexity, incorrect assumptions |
|
|
93
|
+
| **State Management** | Inconsistent state, missing rollbacks |
|
|
94
|
+
| **API Contracts** | Undocumented side effects, broken interfaces |
|
|
95
|
+
|
|
96
|
+
## Best Practices
|
|
97
|
+
|
|
98
|
+
- Run `@logic-lens` on authentication and payment code before every release
|
|
99
|
+
- Combine with `@lint-and-validate` for full coverage: style + logic
|
|
100
|
+
- Review the CRITICAL and HIGH findings first; LOW findings can be deferred
|
|
101
|
+
- Use `@logic-lens` on legacy code you are about to modify to understand risk surface
|
|
102
|
+
|
|
103
|
+
## Benchmark Results
|
|
104
|
+
|
|
105
|
+
Logic Lens was tested against real-world codebases and caught issues missed by ESLint, TypeScript strict mode, and Snyk:
|
|
106
|
+
|
|
107
|
+
- **47% of critical bugs** found were invisible to linters
|
|
108
|
+
- **Race conditions** detected in async code that static analysis missed
|
|
109
|
+
- **Security vulnerabilities** identified before deployment in CI pipeline
|
|
110
|
+
|
|
111
|
+
## Related Skills
|
|
112
|
+
|
|
113
|
+
- `@lint-and-validate` — Complementary: run after logic-lens for style/syntax
|
|
114
|
+
- `@security-auditor` — Specialized security-only deep scan
|
|
115
|
+
- `@debugging-strategies` — Use when logic-lens findings need tracing
|
|
116
|
+
|
|
117
|
+
## Additional Resources
|
|
118
|
+
|
|
119
|
+
- [GitHub Repository](https://github.com/hyhmrright/logic-lens)
|
|
120
|
+
- [Dev.to Article: Why AI Code Review Misses the Most Dangerous Bugs](https://dev.to/hyhmrright/why-ai-code-review-misses-the-most-dangerous-bugs-logic-lens-fixes-that-4a8l)
|
|
121
|
+
- [Claude Code Skills Documentation](https://docs.anthropic.com/claude-code)
|
|
122
|
+
|
|
123
|
+
## Limitations
|
|
124
|
+
|
|
125
|
+
Use this skill only when the task clearly matches the scope described above (code review and logic analysis). Logic Lens provides AI-powered analysis and should be combined with human review for production-critical decisions. Do not treat the output as a substitute for environment-specific testing or security audits.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: squirrel
|
|
3
|
+
description: "Full-cycle AI coding skill: plans, builds, tests, lints, fixes bugs, and writes production-grade docs. Auto-detects project state and adapts its 8-phase pipeline."
|
|
4
|
+
category: development
|
|
5
|
+
risk: safe
|
|
6
|
+
source: community
|
|
7
|
+
source_repo: flyingsquirrel0419/squirrel-skill
|
|
8
|
+
source_type: community
|
|
9
|
+
license: "Apache-2.0"
|
|
10
|
+
license_source: "https://github.com/flyingsquirrel0419/squirrel-skill/blob/main/LICENSE"
|
|
11
|
+
date_added: "2026-04-29"
|
|
12
|
+
author: flying_squirrel__
|
|
13
|
+
tags: [development, testing, planning, code-review, documentation, ci-cd]
|
|
14
|
+
tools: [claude, cursor, codex, antigravity, gemini, windsurf, opencode, copilot]
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Squirrel — Full-Cycle Software Development Skill
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Squirrel is a full-cycle AI coding skill that works across 9 AI coding agents. It auto-detects project state (greenfield, in-progress, or mature) and adapts its 8-phase engineering pipeline accordingly. Instead of a one-size-fits-all workflow, it figures out where the project actually is and jumps in at exactly the right point.
|
|
22
|
+
|
|
23
|
+
## When to Use This Skill
|
|
24
|
+
|
|
25
|
+
- Use when starting a new project from scratch (greenfield)
|
|
26
|
+
- Use when improving an existing codebase (in-progress or mature)
|
|
27
|
+
- Use when fixing bugs, adding features, or refactoring
|
|
28
|
+
- Use when adding tests, linting, or CI/CD to a project
|
|
29
|
+
- Use when writing production-grade documentation
|
|
30
|
+
- Use when the user says "build me", "fix this", "squirrel this project", or any multi-step development task
|
|
31
|
+
|
|
32
|
+
## How It Works
|
|
33
|
+
|
|
34
|
+
### Step 0: Detect Mode
|
|
35
|
+
|
|
36
|
+
Squirrel classifies the project directory:
|
|
37
|
+
|
|
38
|
+
| Signal | Mode | Entry Point |
|
|
39
|
+
|--------|------|-------------|
|
|
40
|
+
| Empty directory | Greenfield | All 8 phases from scratch |
|
|
41
|
+
| Source files, no tests/docs | In-Progress | Audit first, then improve |
|
|
42
|
+
| Source + tests + CI + README | Mature | Targeted improvements |
|
|
43
|
+
| "fix this bug / add feature" | Targeted | Scoped work only |
|
|
44
|
+
|
|
45
|
+
### The 8-Phase Pipeline
|
|
46
|
+
|
|
47
|
+
1. **Discover** — Understand the project (audit existing code or gather requirements)
|
|
48
|
+
2. **Plan** — Concrete task list with dependencies and done-criteria
|
|
49
|
+
3. **Build** — Write or modify code (parallel sub-agents when supported)
|
|
50
|
+
4. **Test** — Run existing tests, write new ones, 70%+ coverage target
|
|
51
|
+
5. **Bug Hunt** — Static analysis + manual review
|
|
52
|
+
6. **Polish** — Lint, format, type check, remove dead code
|
|
53
|
+
7. **Document** — README + inline docs (update existing, don't overwrite)
|
|
54
|
+
8. **Ship** — Final checklist: tests green, no secrets, CI configured
|
|
55
|
+
|
|
56
|
+
### Failure Recovery (3-Strike Rule)
|
|
57
|
+
|
|
58
|
+
1. **Strike 1:** Fix the specific error. Run tests. Move on.
|
|
59
|
+
2. **Strike 2:** Re-read the code. Try a different approach.
|
|
60
|
+
3. **Strike 3:** STOP. Revert. Document what failed. Ask the user.
|
|
61
|
+
|
|
62
|
+
## Examples
|
|
63
|
+
|
|
64
|
+
### Example 1: Build a REST API
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
> build me a REST API for a todo app with TypeScript and Express
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Squirrel auto-detects greenfield mode and runs all 8 phases.
|
|
71
|
+
|
|
72
|
+
### Example 2: Fix a bug
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
> fix this bug in src/auth/login.py
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Squirrel enters targeted mode — abbreviated audit, scoped fix, verify.
|
|
79
|
+
|
|
80
|
+
### Example 3: Improve existing project
|
|
81
|
+
|
|
82
|
+
```text
|
|
83
|
+
> squirrel this project — add tests, fix lint errors, write README
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Squirrel audits the existing codebase, then applies phases 4-8.
|
|
87
|
+
|
|
88
|
+
## Best Practices
|
|
89
|
+
|
|
90
|
+
- Respects existing code — matches naming conventions, test framework, import style, and architecture
|
|
91
|
+
- Reads 2-3 similar files before writing a new one
|
|
92
|
+
- Never suppresses type errors with `as any` or `@ts-ignore`
|
|
93
|
+
- Never deletes failing tests to "pass"
|
|
94
|
+
- Never leaves code in a broken state
|
|
95
|
+
|
|
96
|
+
## Platform Compatibility
|
|
97
|
+
|
|
98
|
+
Squirrel works on: Claude Code, Codex, Cursor, Antigravity, Gemini CLI, GitHub Copilot, Windsurf, OpenCode, Aider (9 total).
|
|
99
|
+
|
|
100
|
+
Install with:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Universal installer
|
|
104
|
+
npx skills add flyingsquirrel0419/squirrel-skill
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Limitations
|
|
109
|
+
|
|
110
|
+
- Does not replace environment-specific validation or expert review
|
|
111
|
+
- CI/CD templates are starting points, not drop-in guarantees
|
|
112
|
+
- Parallel sub-agent execution depends on platform support
|
|
113
|
+
|
|
114
|
+
## Related Skills
|
|
115
|
+
|
|
116
|
+
- `@brainstorming` - For planning before implementation
|
|
117
|
+
- `@test-driven-development` - For TDD-oriented workflows
|
|
118
|
+
- `@systematic-debugging` - For methodical problem-solving
|
|
@@ -3,6 +3,7 @@ export interface SkillRiskFilterConfig {
|
|
|
3
3
|
excludedRiskLevels?: RiskLevel[];
|
|
4
4
|
excludedSkills?: string[];
|
|
5
5
|
}
|
|
6
|
+
export declare const DEFAULT_FILTER_CONFIG_PATH: string;
|
|
6
7
|
/**
|
|
7
8
|
* Loads filter config from skill-filter.jsonc. Missing file or section returns defaults.
|
|
8
9
|
* @param configPath Optional override (for testing).
|
|
@@ -6,29 +6,24 @@ const DEFAULT_CONFIG = {
|
|
|
6
6
|
excludedRiskLevels: [],
|
|
7
7
|
excludedSkills: [],
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* Uses strip-json-comments library to properly handle strings.
|
|
12
|
-
*/
|
|
13
|
-
function stripJsoncComments(content) {
|
|
14
|
-
return stripJsonComments(content);
|
|
15
|
-
}
|
|
9
|
+
export const DEFAULT_FILTER_CONFIG_PATH = path.join(os.homedir(), ".config", "opencode", "skill-filter.jsonc");
|
|
10
|
+
const VALID_RISK_LEVELS = ["none", "safe", "critical", "offensive", "unknown"];
|
|
16
11
|
/**
|
|
17
12
|
* Loads filter config from skill-filter.jsonc. Missing file or section returns defaults.
|
|
18
13
|
* @param configPath Optional override (for testing).
|
|
19
14
|
*/
|
|
20
15
|
export function loadFilterConfig(configPath) {
|
|
21
|
-
const resolvedPath = configPath ??
|
|
16
|
+
const resolvedPath = configPath ?? DEFAULT_FILTER_CONFIG_PATH;
|
|
22
17
|
if (!fs.existsSync(resolvedPath)) {
|
|
23
18
|
return { ...DEFAULT_CONFIG };
|
|
24
19
|
}
|
|
25
20
|
try {
|
|
26
21
|
const raw = fs.readFileSync(resolvedPath, "utf-8");
|
|
27
|
-
const stripped =
|
|
22
|
+
const stripped = stripJsonComments(raw);
|
|
28
23
|
const parsed = JSON.parse(stripped);
|
|
29
24
|
return {
|
|
30
25
|
excludedRiskLevels: Array.isArray(parsed.excludedRiskLevels)
|
|
31
|
-
? parsed.excludedRiskLevels
|
|
26
|
+
? parsed.excludedRiskLevels.filter((v) => VALID_RISK_LEVELS.includes(v))
|
|
32
27
|
: DEFAULT_CONFIG.excludedRiskLevels,
|
|
33
28
|
excludedSkills: Array.isArray(parsed.excludedSkills)
|
|
34
29
|
? parsed.excludedSkills
|
|
@@ -5,7 +5,7 @@ import { ensureDir } from "../utils/fs.utils.js";
|
|
|
5
5
|
import { generatePointers } from "./pointer-generator.js";
|
|
6
6
|
import { installSkillsToVault, loadSkillsIndex } from "./vault-installer.js";
|
|
7
7
|
import { filterIndex } from "./skill-risk-filter.js";
|
|
8
|
-
import { loadFilterConfig } from "./config-loader.js";
|
|
8
|
+
import { loadFilterConfig, DEFAULT_FILTER_CONFIG_PATH } from "./config-loader.js";
|
|
9
9
|
function resolveDefaultVaultDir() {
|
|
10
10
|
return path.join(os.homedir(), ".config", "opencode", VAULT_DIR_NAME);
|
|
11
11
|
}
|
|
@@ -25,7 +25,7 @@ export function runSkillPointer(options) {
|
|
|
25
25
|
ensureDir(options.activeSkillsDir);
|
|
26
26
|
ensureDir(vaultDir);
|
|
27
27
|
const index = loadSkillsIndex(options.bundledSkillsPath);
|
|
28
|
-
const configPath = options.configPath
|
|
28
|
+
const configPath = options.configPath ?? DEFAULT_FILTER_CONFIG_PATH;
|
|
29
29
|
const config = loadFilterConfig(configPath);
|
|
30
30
|
const filteredIndex = filterIndex(index, config);
|
|
31
31
|
installSkillsToVault(options.bundledSkillsPath, vaultDir, filteredIndex);
|
|
@@ -14,7 +14,7 @@ function buildPointerContent(category, skills, libraryPath) {
|
|
|
14
14
|
return `---
|
|
15
15
|
name: ${category}${POINTER_SUFFIX}
|
|
16
16
|
description: "Pointer to a library of ${skillCount} specialized ${title} skills. Use when working on ${category}-related tasks."
|
|
17
|
-
risk:
|
|
17
|
+
risk: none
|
|
18
18
|
---
|
|
19
19
|
|
|
20
20
|
# ${title} Capability Library 🎯
|
|
@@ -53,6 +53,16 @@ export function generatePointers(activeSkillsDir, vaultDir, index = []) {
|
|
|
53
53
|
byCategory.set(cat, []);
|
|
54
54
|
byCategory.get(cat).push(entry);
|
|
55
55
|
}
|
|
56
|
+
const expectedPointers = new Set([...byCategory.keys()].map((c) => `${c}${POINTER_SUFFIX}`));
|
|
57
|
+
if (fs.existsSync(activeSkillsDir)) {
|
|
58
|
+
for (const dirent of fs.readdirSync(activeSkillsDir, { withFileTypes: true })) {
|
|
59
|
+
if (!dirent.isDirectory() || !dirent.name.endsWith(POINTER_SUFFIX))
|
|
60
|
+
continue;
|
|
61
|
+
if (!expectedPointers.has(dirent.name)) {
|
|
62
|
+
fs.rmSync(path.join(activeSkillsDir, dirent.name), { recursive: true, force: true });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
56
66
|
for (const [categoryName, skills] of byCategory.entries()) {
|
|
57
67
|
const categoryVaultPath = path.join(vaultDir, categoryName);
|
|
58
68
|
const pointerDir = path.join(activeSkillsDir, `${categoryName}${POINTER_SUFFIX}`);
|
|
@@ -14,8 +14,11 @@ function parseFrontmatterField(content, field) {
|
|
|
14
14
|
* Normalizes a parsed risk value to a valid RiskLevel, or "unknown" if invalid.
|
|
15
15
|
*/
|
|
16
16
|
function normalizeRisk(parsed) {
|
|
17
|
+
if (!parsed)
|
|
18
|
+
return "unknown";
|
|
19
|
+
const lowered = parsed.trim().toLowerCase();
|
|
17
20
|
const valid = ["none", "safe", "critical", "offensive", "unknown"];
|
|
18
|
-
return valid.includes(
|
|
21
|
+
return valid.includes(lowered) ? lowered : "unknown";
|
|
19
22
|
}
|
|
20
23
|
/**
|
|
21
24
|
* Derives a category slug from a skill folder name by taking the
|
|
@@ -53,6 +56,9 @@ function buildIndexFromBundledSkills(bundledSkillsPath) {
|
|
|
53
56
|
}
|
|
54
57
|
return index;
|
|
55
58
|
}
|
|
59
|
+
function isSafePathComponent(segment) {
|
|
60
|
+
return !segment.includes("..") && !segment.includes(path.sep) && !segment.includes("/");
|
|
61
|
+
}
|
|
56
62
|
/**
|
|
57
63
|
* Loads the pre-built skills_index.json from the project root.
|
|
58
64
|
* Falls back to a dynamically generated index from SKILL.md frontmatter
|
|
@@ -63,7 +69,10 @@ export function loadSkillsIndex(bundledSkillsPath) {
|
|
|
63
69
|
if (fs.existsSync(indexPath)) {
|
|
64
70
|
try {
|
|
65
71
|
const raw = fs.readFileSync(indexPath, "utf-8");
|
|
66
|
-
return JSON.parse(raw)
|
|
72
|
+
return JSON.parse(raw).map((entry) => ({
|
|
73
|
+
...entry,
|
|
74
|
+
risk: normalizeRisk(entry.risk),
|
|
75
|
+
}));
|
|
67
76
|
}
|
|
68
77
|
catch {
|
|
69
78
|
// fall through to dynamic generation
|
|
@@ -78,7 +87,35 @@ export function loadSkillsIndex(bundledSkillsPath) {
|
|
|
78
87
|
export function installSkillsToVault(bundledSkillsPath, vaultDir, index) {
|
|
79
88
|
if (!fs.existsSync(bundledSkillsPath))
|
|
80
89
|
return;
|
|
90
|
+
const expected = new Map();
|
|
91
|
+
for (const entry of index) {
|
|
92
|
+
if (!isSafePathComponent(entry.id) || !isSafePathComponent(entry.category ?? UNCATEGORIZED_CATEGORY))
|
|
93
|
+
continue;
|
|
94
|
+
const category = entry.category ?? UNCATEGORIZED_CATEGORY;
|
|
95
|
+
if (!expected.has(category))
|
|
96
|
+
expected.set(category, new Set());
|
|
97
|
+
expected.get(category).add(entry.id);
|
|
98
|
+
}
|
|
99
|
+
if (fs.existsSync(vaultDir)) {
|
|
100
|
+
for (const category of fs.readdirSync(vaultDir)) {
|
|
101
|
+
const categoryPath = path.join(vaultDir, category);
|
|
102
|
+
if (!fs.statSync(categoryPath).isDirectory())
|
|
103
|
+
continue;
|
|
104
|
+
const allowedSkills = expected.get(category) ?? new Set();
|
|
105
|
+
for (const skillId of fs.readdirSync(categoryPath)) {
|
|
106
|
+
const skillPath = path.join(categoryPath, skillId);
|
|
107
|
+
if (!allowedSkills.has(skillId)) {
|
|
108
|
+
fs.rmSync(skillPath, { recursive: true, force: true });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (fs.readdirSync(categoryPath).length === 0) {
|
|
112
|
+
fs.rmSync(categoryPath, { recursive: true, force: true });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
81
116
|
for (const entry of index) {
|
|
117
|
+
if (!isSafePathComponent(entry.id) || !isSafePathComponent(entry.category ?? UNCATEGORIZED_CATEGORY))
|
|
118
|
+
continue;
|
|
82
119
|
const srcPath = path.join(bundledSkillsPath, entry.id);
|
|
83
120
|
if (!fs.existsSync(srcPath) || !fs.statSync(srcPath).isDirectory())
|
|
84
121
|
continue;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-skills-collection",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "OpenCode CLI plugin that automatically downloads and keeps skills up to date.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@opencode-ai/sdk": "^1.4.0",
|
|
42
42
|
"@types/bun": "latest",
|
|
43
43
|
"@types/node": "^25.5.2",
|
|
44
|
-
"@types/strip-json-comments": "^0.0
|
|
44
|
+
"@types/strip-json-comments": "^3.0.0",
|
|
45
45
|
"typescript": "^6.0.2"
|
|
46
46
|
}
|
|
47
47
|
}
|
package/skills_index.json
CHANGED
|
@@ -6355,6 +6355,28 @@
|
|
|
6355
6355
|
"reasons": []
|
|
6356
6356
|
}
|
|
6357
6357
|
},
|
|
6358
|
+
{
|
|
6359
|
+
"id": "brooks-lint",
|
|
6360
|
+
"path": "skills/brooks-lint",
|
|
6361
|
+
"category": "development",
|
|
6362
|
+
"name": "brooks-lint",
|
|
6363
|
+
"description": "AI code reviewer grounded in classic software engineering books for catching design smells, coupling issues, and architectural risks.",
|
|
6364
|
+
"risk": "safe",
|
|
6365
|
+
"source": "community",
|
|
6366
|
+
"date_added": "2026-04-29",
|
|
6367
|
+
"plugin": {
|
|
6368
|
+
"targets": {
|
|
6369
|
+
"codex": "supported",
|
|
6370
|
+
"claude": "supported"
|
|
6371
|
+
},
|
|
6372
|
+
"setup": {
|
|
6373
|
+
"type": "none",
|
|
6374
|
+
"summary": "",
|
|
6375
|
+
"docs": null
|
|
6376
|
+
},
|
|
6377
|
+
"reasons": []
|
|
6378
|
+
}
|
|
6379
|
+
},
|
|
6358
6380
|
{
|
|
6359
6381
|
"id": "browser-automation",
|
|
6360
6382
|
"path": "skills/browser-automation",
|
|
@@ -6619,6 +6641,28 @@
|
|
|
6619
6641
|
"reasons": []
|
|
6620
6642
|
}
|
|
6621
6643
|
},
|
|
6644
|
+
{
|
|
6645
|
+
"id": "buywhere-product-catalog",
|
|
6646
|
+
"path": "skills/buywhere-product-catalog",
|
|
6647
|
+
"category": "ecommerce",
|
|
6648
|
+
"name": "buywhere-product-catalog",
|
|
6649
|
+
"description": "Use BuyWhere's MCP and API surfaces to add product search, price comparison, and deal discovery to AI shopping agents.",
|
|
6650
|
+
"risk": "safe",
|
|
6651
|
+
"source": "official",
|
|
6652
|
+
"date_added": "2026-04-29",
|
|
6653
|
+
"plugin": {
|
|
6654
|
+
"targets": {
|
|
6655
|
+
"codex": "supported",
|
|
6656
|
+
"claude": "supported"
|
|
6657
|
+
},
|
|
6658
|
+
"setup": {
|
|
6659
|
+
"type": "none",
|
|
6660
|
+
"summary": "",
|
|
6661
|
+
"docs": null
|
|
6662
|
+
},
|
|
6663
|
+
"reasons": []
|
|
6664
|
+
}
|
|
6665
|
+
},
|
|
6622
6666
|
{
|
|
6623
6667
|
"id": "c-pro",
|
|
6624
6668
|
"path": "skills/c-pro",
|
|
@@ -16729,6 +16773,28 @@
|
|
|
16729
16773
|
"reasons": []
|
|
16730
16774
|
}
|
|
16731
16775
|
},
|
|
16776
|
+
{
|
|
16777
|
+
"id": "kubestellar-console",
|
|
16778
|
+
"path": "skills/kubestellar-console",
|
|
16779
|
+
"category": "devops",
|
|
16780
|
+
"name": "kubestellar-console",
|
|
16781
|
+
"description": "Multi-cluster Kubernetes dashboard with AI-powered operations via MCP server and 10+ built-in agent skills",
|
|
16782
|
+
"risk": "critical",
|
|
16783
|
+
"source": "community",
|
|
16784
|
+
"date_added": "2026-04-27",
|
|
16785
|
+
"plugin": {
|
|
16786
|
+
"targets": {
|
|
16787
|
+
"codex": "supported",
|
|
16788
|
+
"claude": "supported"
|
|
16789
|
+
},
|
|
16790
|
+
"setup": {
|
|
16791
|
+
"type": "manual",
|
|
16792
|
+
"summary": "Requires kc-agent binary (brew tap kubestellar/tap && brew install kc-agent)",
|
|
16793
|
+
"docs": "https://github.com/kubestellar/console#quick-start"
|
|
16794
|
+
},
|
|
16795
|
+
"reasons": []
|
|
16796
|
+
}
|
|
16797
|
+
},
|
|
16732
16798
|
{
|
|
16733
16799
|
"id": "lambda-lang",
|
|
16734
16800
|
"path": "skills/lambda-lang",
|
|
@@ -17701,6 +17767,28 @@
|
|
|
17701
17767
|
"reasons": []
|
|
17702
17768
|
}
|
|
17703
17769
|
},
|
|
17770
|
+
{
|
|
17771
|
+
"id": "logic-lens",
|
|
17772
|
+
"path": "skills/logic-lens",
|
|
17773
|
+
"category": "development",
|
|
17774
|
+
"name": "logic-lens",
|
|
17775
|
+
"description": "AI-powered Claude Code skill that performs deep code review using formal logic and reasoning frameworks to detect bugs, anti-patterns, and security risks beyond what linters catch.",
|
|
17776
|
+
"risk": "safe",
|
|
17777
|
+
"source": "community",
|
|
17778
|
+
"date_added": "2026-04-29",
|
|
17779
|
+
"plugin": {
|
|
17780
|
+
"targets": {
|
|
17781
|
+
"codex": "supported",
|
|
17782
|
+
"claude": "supported"
|
|
17783
|
+
},
|
|
17784
|
+
"setup": {
|
|
17785
|
+
"type": "none",
|
|
17786
|
+
"summary": "",
|
|
17787
|
+
"docs": null
|
|
17788
|
+
},
|
|
17789
|
+
"reasons": []
|
|
17790
|
+
}
|
|
17791
|
+
},
|
|
17704
17792
|
{
|
|
17705
17793
|
"id": "logistics-exception-management",
|
|
17706
17794
|
"path": "skills/logistics-exception-management",
|
|
@@ -26902,6 +26990,28 @@
|
|
|
26902
26990
|
"reasons": []
|
|
26903
26991
|
}
|
|
26904
26992
|
},
|
|
26993
|
+
{
|
|
26994
|
+
"id": "squirrel",
|
|
26995
|
+
"path": "skills/squirrel",
|
|
26996
|
+
"category": "development",
|
|
26997
|
+
"name": "squirrel",
|
|
26998
|
+
"description": "Full-cycle AI coding skill: plans, builds, tests, lints, fixes bugs, and writes production-grade docs. Auto-detects project state and adapts its 8-phase pipeline.",
|
|
26999
|
+
"risk": "safe",
|
|
27000
|
+
"source": "community",
|
|
27001
|
+
"date_added": "2026-04-29",
|
|
27002
|
+
"plugin": {
|
|
27003
|
+
"targets": {
|
|
27004
|
+
"codex": "supported",
|
|
27005
|
+
"claude": "supported"
|
|
27006
|
+
},
|
|
27007
|
+
"setup": {
|
|
27008
|
+
"type": "none",
|
|
27009
|
+
"summary": "",
|
|
27010
|
+
"docs": null
|
|
27011
|
+
},
|
|
27012
|
+
"reasons": []
|
|
27013
|
+
}
|
|
27014
|
+
},
|
|
26905
27015
|
{
|
|
26906
27016
|
"id": "sred-project-organizer",
|
|
26907
27017
|
"path": "skills/sred-project-organizer",
|