opencode-skills-collection 3.0.37 → 3.0.38
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 +13 -1
- package/bundled-skills/2slides-ppt-generator/SKILL.md +786 -0
- package/bundled-skills/2slides-ppt-generator/references/api-reference.md +499 -0
- package/bundled-skills/2slides-ppt-generator/references/mcp-integration.md +282 -0
- package/bundled-skills/2slides-ppt-generator/references/pricing.md +195 -0
- package/bundled-skills/2slides-ppt-generator/scripts/api_constants.py +87 -0
- package/bundled-skills/2slides-ppt-generator/scripts/create_pdf_slides.py +159 -0
- package/bundled-skills/2slides-ppt-generator/scripts/download_slides_pages_voices.py +157 -0
- package/bundled-skills/2slides-ppt-generator/scripts/generate_narration.py +197 -0
- package/bundled-skills/2slides-ppt-generator/scripts/generate_slides.py +247 -0
- package/bundled-skills/2slides-ppt-generator/scripts/get_job_status.py +106 -0
- package/bundled-skills/2slides-ppt-generator/scripts/search_themes.py +137 -0
- package/bundled-skills/anti-sycophancy/README.md +86 -0
- package/bundled-skills/anti-sycophancy/SKILL.md +40 -0
- package/bundled-skills/antigravity-agent-manager/SKILL.md +112 -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/sources/sources.md +1 -0
- 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/event-staffing-compliance/SKILL.md +91 -0
- package/bundled-skills/event-staffing-ordering/SKILL.md +119 -0
- package/bundled-skills/examprep-ai/SKILL.md +446 -0
- package/bundled-skills/hasdata/SKILL.md +107 -0
- package/bundled-skills/hasdata/references/code-recipes.md +150 -0
- package/bundled-skills/hasdata/references/ecommerce.md +116 -0
- package/bundled-skills/hasdata/references/jobs.md +111 -0
- package/bundled-skills/hasdata/references/local-business.md +145 -0
- package/bundled-skills/hasdata/references/real-estate.md +84 -0
- package/bundled-skills/hasdata/references/scraper-jobs.md +252 -0
- package/bundled-skills/hasdata/references/search.md +154 -0
- package/bundled-skills/hasdata/references/travel.md +202 -0
- package/bundled-skills/hasdata/references/web-scraping.md +159 -0
- package/bundled-skills/hasdata/references/youtube.md +186 -0
- package/bundled-skills/hasdata-cli/SKILL.md +169 -0
- package/bundled-skills/hasdata-cli/references/all-commands.md +107 -0
- package/bundled-skills/hasdata-cli/references/ecommerce.md +106 -0
- package/bundled-skills/hasdata-cli/references/enrichment.md +227 -0
- package/bundled-skills/hasdata-cli/references/jobs.md +84 -0
- package/bundled-skills/hasdata-cli/references/local-business.md +123 -0
- package/bundled-skills/hasdata-cli/references/real-estate.md +126 -0
- package/bundled-skills/hasdata-cli/references/search.md +122 -0
- package/bundled-skills/hasdata-cli/references/travel.md +102 -0
- package/bundled-skills/hasdata-cli/references/web-scraping.md +181 -0
- package/bundled-skills/hasdata-cli/references/youtube.md +145 -0
- package/bundled-skills/linkedin-content-generator/SKILL.md +492 -0
- package/bundled-skills/linkedin-content-generator/scripts/generate_calendar.py +82 -0
- package/bundled-skills/linkedin-content-generator/scripts/generate_carousel.py +69 -0
- package/bundled-skills/linkedin-content-generator/scripts/generate_newsletter.py +64 -0
- package/bundled-skills/linkedin-content-generator/scripts/generate_post.py +77 -0
- package/bundled-skills/linkedin-content-generator/scripts/memory.md +49 -0
- package/bundled-skills/linkedin-content-generator/scripts/memory_manager.py +134 -0
- package/bundled-skills/linkedin-content-generator/scripts/utils.py +96 -0
- package/bundled-skills/permission-manager/README.md +22 -0
- package/bundled-skills/permission-manager/SKILL.md +54 -0
- package/bundled-skills/skill-suggester/README.md +14 -0
- package/bundled-skills/skill-suggester/SKILL.md +69 -0
- package/bundled-skills/smart-git-automation/README.md +31 -0
- package/bundled-skills/smart-git-automation/SKILL.md +96 -0
- package/bundled-skills/vercel-optimize/lib/cost-coverage.mjs +3 -1
- package/bundled-skills/vercel-optimize/lib/render-report.mjs +2 -2
- package/bundled-skills/vercel-optimize/lib/util.mjs +7 -0
- package/bundled-skills/vercel-optimize/lib/verify-claim.mjs +2 -7
- package/bundled-skills/vercel-optimize/lib/workspace-resolver.mjs +2 -1
- package/package.json +1 -1
- package/skills_index.json +268 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: smart-git-automation
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Smart change detection, auto branch naming, and streamlined commit/PR workflow"
|
|
5
|
+
risk: critical
|
|
6
|
+
source: community
|
|
7
|
+
source_type: community
|
|
8
|
+
source_repo: mskadu/opencode-agent-skills
|
|
9
|
+
license: MIT
|
|
10
|
+
license_source: "https://github.com/mskadu/opencode-agent-skills/blob/main/LICENSE"
|
|
11
|
+
date_added: "2026-06-05"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## What I do
|
|
15
|
+
- Intelligently detect and group related changes
|
|
16
|
+
- Auto-generate descriptive branch names from changes
|
|
17
|
+
- Streamlined workflow: scan → branch → commit → push → PR with fewer prompts
|
|
18
|
+
|
|
19
|
+
## When to Use
|
|
20
|
+
Use this when you want a faster, smarter git workflow that groups changes logically and reduces manual confirmation overhead.
|
|
21
|
+
|
|
22
|
+
## Workflow Steps
|
|
23
|
+
|
|
24
|
+
### 1. Smart Detection & Grouping
|
|
25
|
+
Run in parallel:
|
|
26
|
+
- `git status` - check what's changed
|
|
27
|
+
- `git diff --stat` - see file modification summary
|
|
28
|
+
- `git diff --name-only` - list changed files only
|
|
29
|
+
- `git diff --staged --stat` - see what's already staged
|
|
30
|
+
|
|
31
|
+
Analyze changes to group them logically:
|
|
32
|
+
- Files in the same module/directory → likely related
|
|
33
|
+
- Files that were modified together in recent edits → likely related
|
|
34
|
+
- New files that complement each other → likely related
|
|
35
|
+
|
|
36
|
+
Present grouped changes in a clear format, e.g.:
|
|
37
|
+
```
|
|
38
|
+
📁 Group 1: UI Components
|
|
39
|
+
- src/components/Button.tsx (modified)
|
|
40
|
+
- src/components/Button.test.tsx (modified)
|
|
41
|
+
|
|
42
|
+
📁 Group 2: API Layer
|
|
43
|
+
- src/api/client.ts (new)
|
|
44
|
+
- src/api/types.ts (modified)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 2. Auto Branch Name Generation
|
|
48
|
+
Generate branch name from dominant change pattern:
|
|
49
|
+
- Use format: `<type>/<short-description>`
|
|
50
|
+
- Types: `feature`, `fix`, `refactor`, `docs`, `test`, `chore`
|
|
51
|
+
- Derive description from most significant changed file/feature
|
|
52
|
+
- Convert to kebab-case, max 50 chars
|
|
53
|
+
- Examples:
|
|
54
|
+
- `feature/add-user-auth` (from auth-related files)
|
|
55
|
+
- `fix/login-validation` (from validation changes)
|
|
56
|
+
- `refactor/api-cleanup` (from API refactoring)
|
|
57
|
+
|
|
58
|
+
Show the proposed branch name and ask for one-word confirmation (or type alternative).
|
|
59
|
+
|
|
60
|
+
### 3. Streamlined Branch & Commit
|
|
61
|
+
- If not on main/master: check if current branch matches proposed name
|
|
62
|
+
- If yes: stay on it
|
|
63
|
+
- If no: ask to switch or create new
|
|
64
|
+
- Create branch: `git checkout -b <branch-name>`
|
|
65
|
+
- Stage changes: `git add <grouped-files>`
|
|
66
|
+
- Auto-generate commit message from changes:
|
|
67
|
+
- First line: `<type>: <short description>` (max 72 chars)
|
|
68
|
+
- Body: grouped file changes with brief descriptions
|
|
69
|
+
- Commit with generated message, show preview first
|
|
70
|
+
- Ask for one-word confirmation to proceed
|
|
71
|
+
|
|
72
|
+
### 4. Push & Optional PR
|
|
73
|
+
- After commit, ask: "Push to remote? (yes/no/abort)"
|
|
74
|
+
- If yes: `git push -u origin <branch-name>`
|
|
75
|
+
- Then ask: "Create PR? (yes/no)"
|
|
76
|
+
- If yes:
|
|
77
|
+
- Check remote: `git remote -v`
|
|
78
|
+
- If fork: use fork's remote (e.g., `mskadu/repo-name`)
|
|
79
|
+
- Auto-generate PR description from commit messages
|
|
80
|
+
- Use `gh pr create` with:
|
|
81
|
+
- Title from branch name
|
|
82
|
+
- Body: summary of changes + file breakdown + follow-up notes
|
|
83
|
+
|
|
84
|
+
## Key Rules
|
|
85
|
+
- Group related files automatically, but allow user to adjust
|
|
86
|
+
- Generate branch names from actual changes, don't ask user to name them
|
|
87
|
+
- Reduce confirmations: ask for one-word answers or single confirmation points
|
|
88
|
+
- Never commit secrets, credentials, or large binaries
|
|
89
|
+
- Check if GitHub repo exists before PR creation
|
|
90
|
+
- Skip PR step if user says "no" at any point
|
|
91
|
+
- If branch already exists with changes, offer to amend or add new commit
|
|
92
|
+
|
|
93
|
+
## Limitations
|
|
94
|
+
|
|
95
|
+
- Do not bypass repository-specific maintainer rules, branch policies, or required review gates.
|
|
96
|
+
- Confirm destructive or publishing actions explicitly; this skill should streamline routine Git flow, not remove accountability.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// Maps billing line items to gate coverage so report surfaces uncovered dimensions (Sandbox, AI Gateway, Build, …) as blind spots.
|
|
2
2
|
|
|
3
|
+
import { escapeMarkdownTableCell } from './util.mjs';
|
|
4
|
+
|
|
3
5
|
// Service → billing dimension. dim=null means uncovered. Substring match — Vercel billing names are stable but untyped.
|
|
4
6
|
const SERVICE_DIMENSION = [
|
|
5
7
|
{ match: /^Function Duration$/i, dim: 'function-duration' },
|
|
@@ -139,5 +141,5 @@ export function renderCostCoverageMarkdown(coverage) {
|
|
|
139
141
|
}
|
|
140
142
|
|
|
141
143
|
function escapeCell(s) {
|
|
142
|
-
return
|
|
144
|
+
return escapeMarkdownTableCell(s);
|
|
143
145
|
}
|
|
@@ -8,6 +8,7 @@ import { computeCostCoverage, renderCostCoverageMarkdown } from './cost-coverage
|
|
|
8
8
|
import { gates as registeredGates } from './gates/index.mjs';
|
|
9
9
|
import { formatCandidateLabel, formatKind, formatPublicText, formatRoute, formatSignal } from './display-labels.mjs';
|
|
10
10
|
import { splitCustomerSafeObservations } from './observation-safety.mjs';
|
|
11
|
+
import { escapeMarkdownTableCell } from './util.mjs';
|
|
11
12
|
|
|
12
13
|
const PLATFORM_CAP = 3;
|
|
13
14
|
const GATED_TARGET_PREVIEW = 5;
|
|
@@ -911,8 +912,7 @@ function formatBytes(b) {
|
|
|
911
912
|
}
|
|
912
913
|
|
|
913
914
|
function escape(s) {
|
|
914
|
-
|
|
915
|
-
return s.replace(/\|/g, '\\|').replace(/\n/g, ' ');
|
|
915
|
+
return escapeMarkdownTableCell(s);
|
|
916
916
|
}
|
|
917
917
|
|
|
918
918
|
function asArray(v) { return Array.isArray(v) ? v : []; }
|
|
@@ -9,6 +9,13 @@ export function escapeRegex(s) {
|
|
|
9
9
|
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
export function escapeMarkdownTableCell(value) {
|
|
13
|
+
return String(value ?? '')
|
|
14
|
+
.replace(/\\/g, '\\\\')
|
|
15
|
+
.replace(/\|/g, '\\|')
|
|
16
|
+
.replace(/[\r\n]+/g, ' ');
|
|
17
|
+
}
|
|
18
|
+
|
|
12
19
|
// `slow_route:/api/products` → `/api/products`.
|
|
13
20
|
export function extractRoute(rec) {
|
|
14
21
|
if (typeof rec?.candidateRef !== 'string') return null;
|
|
@@ -7,6 +7,7 @@ import { promisify } from 'node:util';
|
|
|
7
7
|
import { isKnownUrl, sanitizeCitations } from './citations.mjs';
|
|
8
8
|
import { findRecContradictions } from './project-facts.mjs';
|
|
9
9
|
import { canonicalizeRoute } from './route-normalize.mjs';
|
|
10
|
+
import { escapeRegex } from './util.mjs';
|
|
10
11
|
|
|
11
12
|
const execFileP = promisify(execFile);
|
|
12
13
|
const cacheInvalidationFileCache = new Map();
|
|
@@ -1203,14 +1204,8 @@ function escapeRegExp(s) {
|
|
|
1203
1204
|
return String(s).replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
1204
1205
|
}
|
|
1205
1206
|
|
|
1206
|
-
// Supports `/pattern/flags` literal-regex form OR plain escaped string. Caller flags merge with embedded flags via Set dedup.
|
|
1207
1207
|
function compilePattern(pattern, flags) {
|
|
1208
|
-
|
|
1209
|
-
if (m) {
|
|
1210
|
-
const mergedFlags = [...new Set(((m[2] || '') + (flags || '')).split(''))].join('');
|
|
1211
|
-
return new RegExp(m[1], mergedFlags);
|
|
1212
|
-
}
|
|
1213
|
-
return new RegExp(pattern.replace(/[.+^${}()|[\]\\?*]/g, '\\$&'), flags);
|
|
1208
|
+
return new RegExp(escapeRegex(String(pattern ?? '')), flags);
|
|
1214
1209
|
}
|
|
1215
1210
|
|
|
1216
1211
|
async function readClaimFile(claim) {
|
|
@@ -141,6 +141,7 @@ function buildPackageLookup(p) {
|
|
|
141
141
|
if (key.includes('*')) {
|
|
142
142
|
const keyStarIdx = key.indexOf('*');
|
|
143
143
|
if (keyStarIdx !== key.lastIndexOf('*')) continue;
|
|
144
|
+
if ((target.match(/\*/g) ?? []).length > 1) continue;
|
|
144
145
|
wildcards.push({
|
|
145
146
|
keyPrefix: key.slice(0, keyStarIdx),
|
|
146
147
|
keySuffix: key.slice(keyStarIdx + 1),
|
|
@@ -159,7 +160,7 @@ function buildPackageLookup(p) {
|
|
|
159
160
|
if (subpath.startsWith(w.keyPrefix) && subpath.endsWith(w.keySuffix)) {
|
|
160
161
|
const star = subpath.slice(w.keyPrefix.length, subpath.length - w.keySuffix.length);
|
|
161
162
|
if (!star) continue;
|
|
162
|
-
const target = w.valueTemplate.
|
|
163
|
+
const target = w.valueTemplate.replaceAll('*', star);
|
|
163
164
|
return joinPackagePath(p.dir, target);
|
|
164
165
|
}
|
|
165
166
|
}
|
package/package.json
CHANGED
package/skills_index.json
CHANGED
|
@@ -109,6 +109,28 @@
|
|
|
109
109
|
"reasons": []
|
|
110
110
|
}
|
|
111
111
|
},
|
|
112
|
+
{
|
|
113
|
+
"id": "2slides-ppt-generator",
|
|
114
|
+
"path": "skills/2slides-ppt-generator",
|
|
115
|
+
"category": "api-integration",
|
|
116
|
+
"name": "2slides-ppt-generator",
|
|
117
|
+
"description": "AI-powered presentation generation via the 2slides API \u2014 create slides from text, match a reference image style, summarize documents into decks, add AI voice narration, and export pages/audio. Use for any \"make slides\", \"create a deck\", or \"slides from this document\" request.",
|
|
118
|
+
"risk": "safe",
|
|
119
|
+
"source": "community",
|
|
120
|
+
"date_added": "2026-06-05",
|
|
121
|
+
"plugin": {
|
|
122
|
+
"targets": {
|
|
123
|
+
"codex": "supported",
|
|
124
|
+
"claude": "supported"
|
|
125
|
+
},
|
|
126
|
+
"setup": {
|
|
127
|
+
"type": "none",
|
|
128
|
+
"summary": "",
|
|
129
|
+
"docs": null
|
|
130
|
+
},
|
|
131
|
+
"reasons": []
|
|
132
|
+
}
|
|
133
|
+
},
|
|
112
134
|
{
|
|
113
135
|
"id": "3d-games",
|
|
114
136
|
"path": "skills/game-development/3d-games",
|
|
@@ -1615,6 +1637,52 @@
|
|
|
1615
1637
|
"reasons": []
|
|
1616
1638
|
}
|
|
1617
1639
|
},
|
|
1640
|
+
{
|
|
1641
|
+
"id": "anti-sycophancy",
|
|
1642
|
+
"path": "skills/anti-sycophancy",
|
|
1643
|
+
"category": "uncategorized",
|
|
1644
|
+
"name": "anti-sycophancy",
|
|
1645
|
+
"description": "Eliminate sycophantic agreement patterns in AI responses. Load via /skill anti-sycophancy.",
|
|
1646
|
+
"risk": "safe",
|
|
1647
|
+
"source": "community",
|
|
1648
|
+
"date_added": "2026-06-05",
|
|
1649
|
+
"plugin": {
|
|
1650
|
+
"targets": {
|
|
1651
|
+
"codex": "supported",
|
|
1652
|
+
"claude": "supported"
|
|
1653
|
+
},
|
|
1654
|
+
"setup": {
|
|
1655
|
+
"type": "none",
|
|
1656
|
+
"summary": "",
|
|
1657
|
+
"docs": null
|
|
1658
|
+
},
|
|
1659
|
+
"reasons": []
|
|
1660
|
+
}
|
|
1661
|
+
},
|
|
1662
|
+
{
|
|
1663
|
+
"id": "antigravity-agent-manager",
|
|
1664
|
+
"path": "skills/antigravity-agent-manager",
|
|
1665
|
+
"category": "general",
|
|
1666
|
+
"name": "antigravity-agent-manager",
|
|
1667
|
+
"description": "Configure and orchestrate parallel agents using the standalone Antigravity 2.0 Agent Manager and Antigravity IDE.",
|
|
1668
|
+
"risk": "critical",
|
|
1669
|
+
"source": "self",
|
|
1670
|
+
"date_added": "2026-06-04",
|
|
1671
|
+
"plugin": {
|
|
1672
|
+
"targets": {
|
|
1673
|
+
"codex": "blocked",
|
|
1674
|
+
"claude": "blocked"
|
|
1675
|
+
},
|
|
1676
|
+
"setup": {
|
|
1677
|
+
"type": "none",
|
|
1678
|
+
"summary": "",
|
|
1679
|
+
"docs": null
|
|
1680
|
+
},
|
|
1681
|
+
"reasons": [
|
|
1682
|
+
"absolute_host_path"
|
|
1683
|
+
]
|
|
1684
|
+
}
|
|
1685
|
+
},
|
|
1618
1686
|
{
|
|
1619
1687
|
"id": "antigravity-design-expert",
|
|
1620
1688
|
"path": "skills/antigravity-design-expert",
|
|
@@ -12003,6 +12071,50 @@
|
|
|
12003
12071
|
"reasons": []
|
|
12004
12072
|
}
|
|
12005
12073
|
},
|
|
12074
|
+
{
|
|
12075
|
+
"id": "event-staffing-compliance",
|
|
12076
|
+
"path": "skills/event-staffing-compliance",
|
|
12077
|
+
"category": "uncategorized",
|
|
12078
|
+
"name": "event-staffing-compliance",
|
|
12079
|
+
"description": "Assess worker-classification and compliance risk for temporary event staffing in the US and Canada \u2014 W-2 vs 1099, misclassification penalties, joint-employer liability, COI, and wage/hour rules. Includes live state-by-state lookups via MCP.",
|
|
12080
|
+
"risk": "safe",
|
|
12081
|
+
"source": "community",
|
|
12082
|
+
"date_added": "2026-06-05",
|
|
12083
|
+
"plugin": {
|
|
12084
|
+
"targets": {
|
|
12085
|
+
"codex": "supported",
|
|
12086
|
+
"claude": "supported"
|
|
12087
|
+
},
|
|
12088
|
+
"setup": {
|
|
12089
|
+
"type": "none",
|
|
12090
|
+
"summary": "",
|
|
12091
|
+
"docs": null
|
|
12092
|
+
},
|
|
12093
|
+
"reasons": []
|
|
12094
|
+
}
|
|
12095
|
+
},
|
|
12096
|
+
{
|
|
12097
|
+
"id": "event-staffing-ordering",
|
|
12098
|
+
"path": "skills/event-staffing-ordering",
|
|
12099
|
+
"category": "uncategorized",
|
|
12100
|
+
"name": "event-staffing-ordering",
|
|
12101
|
+
"description": "Order W-2 compliant temporary event staff for conventions, trade shows, festivals, concerts, sporting events, and brand activations across 300+ US and Canadian markets via TempGuru. Covers city coverage, role pricing, availability, state compliance lookups via MCP, and request submission.",
|
|
12102
|
+
"risk": "safe",
|
|
12103
|
+
"source": "community",
|
|
12104
|
+
"date_added": "2026-06-05",
|
|
12105
|
+
"plugin": {
|
|
12106
|
+
"targets": {
|
|
12107
|
+
"codex": "supported",
|
|
12108
|
+
"claude": "supported"
|
|
12109
|
+
},
|
|
12110
|
+
"setup": {
|
|
12111
|
+
"type": "none",
|
|
12112
|
+
"summary": "",
|
|
12113
|
+
"docs": null
|
|
12114
|
+
},
|
|
12115
|
+
"reasons": []
|
|
12116
|
+
}
|
|
12117
|
+
},
|
|
12006
12118
|
{
|
|
12007
12119
|
"id": "event-store-design",
|
|
12008
12120
|
"path": "skills/event-store-design",
|
|
@@ -12069,6 +12181,28 @@
|
|
|
12069
12181
|
"reasons": []
|
|
12070
12182
|
}
|
|
12071
12183
|
},
|
|
12184
|
+
{
|
|
12185
|
+
"id": "examprep-ai",
|
|
12186
|
+
"path": "skills/examprep-ai",
|
|
12187
|
+
"category": "education",
|
|
12188
|
+
"name": "examprep-ai",
|
|
12189
|
+
"description": "Exam preparation assistant that converts syllabi, past papers, or notes into a ranked High Score Roadmap. Covers theory, numericals, MCQs, coding, and lab prep, ordered Easy \u2192 Medium \u2192 Hard. Use for last-minute revision, important topics, and question prediction.",
|
|
12190
|
+
"risk": "safe",
|
|
12191
|
+
"source": "community",
|
|
12192
|
+
"date_added": "2026-06-05",
|
|
12193
|
+
"plugin": {
|
|
12194
|
+
"targets": {
|
|
12195
|
+
"codex": "supported",
|
|
12196
|
+
"claude": "supported"
|
|
12197
|
+
},
|
|
12198
|
+
"setup": {
|
|
12199
|
+
"type": "none",
|
|
12200
|
+
"summary": "",
|
|
12201
|
+
"docs": null
|
|
12202
|
+
},
|
|
12203
|
+
"reasons": []
|
|
12204
|
+
}
|
|
12205
|
+
},
|
|
12072
12206
|
{
|
|
12073
12207
|
"id": "executing-plans",
|
|
12074
12208
|
"path": "skills/executing-plans",
|
|
@@ -14907,6 +15041,50 @@
|
|
|
14907
15041
|
"reasons": []
|
|
14908
15042
|
}
|
|
14909
15043
|
},
|
|
15044
|
+
{
|
|
15045
|
+
"id": "hasdata",
|
|
15046
|
+
"path": "skills/hasdata",
|
|
15047
|
+
"category": "uncategorized",
|
|
15048
|
+
"name": "hasdata",
|
|
15049
|
+
"description": "Use HasData APIs for web scraping and structured web data extraction.",
|
|
15050
|
+
"risk": "safe",
|
|
15051
|
+
"source": "official",
|
|
15052
|
+
"date_added": "2026-06-04",
|
|
15053
|
+
"plugin": {
|
|
15054
|
+
"targets": {
|
|
15055
|
+
"codex": "supported",
|
|
15056
|
+
"claude": "supported"
|
|
15057
|
+
},
|
|
15058
|
+
"setup": {
|
|
15059
|
+
"type": "none",
|
|
15060
|
+
"summary": "",
|
|
15061
|
+
"docs": null
|
|
15062
|
+
},
|
|
15063
|
+
"reasons": []
|
|
15064
|
+
}
|
|
15065
|
+
},
|
|
15066
|
+
{
|
|
15067
|
+
"id": "hasdata-cli",
|
|
15068
|
+
"path": "skills/hasdata-cli",
|
|
15069
|
+
"category": "uncategorized",
|
|
15070
|
+
"name": "hasdata-cli",
|
|
15071
|
+
"description": "Command-line access to search, scraping, and structured web data.",
|
|
15072
|
+
"risk": "safe",
|
|
15073
|
+
"source": "official",
|
|
15074
|
+
"date_added": "2026-06-04",
|
|
15075
|
+
"plugin": {
|
|
15076
|
+
"targets": {
|
|
15077
|
+
"codex": "supported",
|
|
15078
|
+
"claude": "supported"
|
|
15079
|
+
},
|
|
15080
|
+
"setup": {
|
|
15081
|
+
"type": "none",
|
|
15082
|
+
"summary": "",
|
|
15083
|
+
"docs": null
|
|
15084
|
+
},
|
|
15085
|
+
"reasons": []
|
|
15086
|
+
}
|
|
15087
|
+
},
|
|
14910
15088
|
{
|
|
14911
15089
|
"id": "haskell-pro",
|
|
14912
15090
|
"path": "skills/haskell-pro",
|
|
@@ -17927,6 +18105,30 @@
|
|
|
17927
18105
|
"reasons": []
|
|
17928
18106
|
}
|
|
17929
18107
|
},
|
|
18108
|
+
{
|
|
18109
|
+
"id": "linkedin-content-generator",
|
|
18110
|
+
"path": "skills/linkedin-content-generator",
|
|
18111
|
+
"category": "marketing",
|
|
18112
|
+
"name": "linkedin-content-generator",
|
|
18113
|
+
"description": "AI-powered LinkedIn content suite: generate posts, carousels, newsletters, and 30-day calendars with niche-specific SEO rules and a reinforcement-learning personal memory system.",
|
|
18114
|
+
"risk": "safe",
|
|
18115
|
+
"source": "community",
|
|
18116
|
+
"date_added": "2026-06-04",
|
|
18117
|
+
"plugin": {
|
|
18118
|
+
"targets": {
|
|
18119
|
+
"codex": "blocked",
|
|
18120
|
+
"claude": "supported"
|
|
18121
|
+
},
|
|
18122
|
+
"setup": {
|
|
18123
|
+
"type": "none",
|
|
18124
|
+
"summary": "",
|
|
18125
|
+
"docs": null
|
|
18126
|
+
},
|
|
18127
|
+
"reasons": [
|
|
18128
|
+
"target_specific_home_path"
|
|
18129
|
+
]
|
|
18130
|
+
}
|
|
18131
|
+
},
|
|
17930
18132
|
{
|
|
17931
18133
|
"id": "linkedin-profile-optimizer",
|
|
17932
18134
|
"path": "skills/linkedin-profile-optimizer",
|
|
@@ -22434,6 +22636,28 @@
|
|
|
22434
22636
|
"reasons": []
|
|
22435
22637
|
}
|
|
22436
22638
|
},
|
|
22639
|
+
{
|
|
22640
|
+
"id": "permission-manager",
|
|
22641
|
+
"path": "skills/permission-manager",
|
|
22642
|
+
"category": "uncategorized",
|
|
22643
|
+
"name": "permission-manager",
|
|
22644
|
+
"description": "Manage opencode permissions: review always-allow lists, suggest safe read-only commands, configure permission patterns",
|
|
22645
|
+
"risk": "critical",
|
|
22646
|
+
"source": "community",
|
|
22647
|
+
"date_added": "2026-06-05",
|
|
22648
|
+
"plugin": {
|
|
22649
|
+
"targets": {
|
|
22650
|
+
"codex": "supported",
|
|
22651
|
+
"claude": "supported"
|
|
22652
|
+
},
|
|
22653
|
+
"setup": {
|
|
22654
|
+
"type": "none",
|
|
22655
|
+
"summary": "",
|
|
22656
|
+
"docs": null
|
|
22657
|
+
},
|
|
22658
|
+
"reasons": []
|
|
22659
|
+
}
|
|
22660
|
+
},
|
|
22437
22661
|
{
|
|
22438
22662
|
"id": "personal-tool-builder",
|
|
22439
22663
|
"path": "skills/personal-tool-builder",
|
|
@@ -27536,6 +27760,28 @@
|
|
|
27536
27760
|
"reasons": []
|
|
27537
27761
|
}
|
|
27538
27762
|
},
|
|
27763
|
+
{
|
|
27764
|
+
"id": "skill-suggester",
|
|
27765
|
+
"path": "skills/skill-suggester",
|
|
27766
|
+
"category": "meta",
|
|
27767
|
+
"name": "skill-suggester",
|
|
27768
|
+
"description": "Scan prompt history for recurring patterns and unmet needs, then propose new skills or command templates",
|
|
27769
|
+
"risk": "safe",
|
|
27770
|
+
"source": "community",
|
|
27771
|
+
"date_added": "2026-06-05",
|
|
27772
|
+
"plugin": {
|
|
27773
|
+
"targets": {
|
|
27774
|
+
"codex": "supported",
|
|
27775
|
+
"claude": "supported"
|
|
27776
|
+
},
|
|
27777
|
+
"setup": {
|
|
27778
|
+
"type": "none",
|
|
27779
|
+
"summary": "",
|
|
27780
|
+
"docs": null
|
|
27781
|
+
},
|
|
27782
|
+
"reasons": []
|
|
27783
|
+
}
|
|
27784
|
+
},
|
|
27539
27785
|
{
|
|
27540
27786
|
"id": "skill-writer",
|
|
27541
27787
|
"path": "skills/skill-writer",
|
|
@@ -27714,6 +27960,28 @@
|
|
|
27714
27960
|
"reasons": []
|
|
27715
27961
|
}
|
|
27716
27962
|
},
|
|
27963
|
+
{
|
|
27964
|
+
"id": "smart-git-automation",
|
|
27965
|
+
"path": "skills/smart-git-automation",
|
|
27966
|
+
"category": "automation",
|
|
27967
|
+
"name": "smart-git-automation",
|
|
27968
|
+
"description": "Smart change detection, auto branch naming, and streamlined commit/PR workflow",
|
|
27969
|
+
"risk": "critical",
|
|
27970
|
+
"source": "community",
|
|
27971
|
+
"date_added": "2026-06-05",
|
|
27972
|
+
"plugin": {
|
|
27973
|
+
"targets": {
|
|
27974
|
+
"codex": "supported",
|
|
27975
|
+
"claude": "supported"
|
|
27976
|
+
},
|
|
27977
|
+
"setup": {
|
|
27978
|
+
"type": "none",
|
|
27979
|
+
"summary": "",
|
|
27980
|
+
"docs": null
|
|
27981
|
+
},
|
|
27982
|
+
"reasons": []
|
|
27983
|
+
}
|
|
27984
|
+
},
|
|
27717
27985
|
{
|
|
27718
27986
|
"id": "smtp-penetration-testing",
|
|
27719
27987
|
"path": "skills/smtp-penetration-testing",
|