From 27cb7c68309b0aa7d0525eaf9df30cd62caedef9 Mon Sep 17 00:00:00 2001 From: sck_0 Date: Sat, 14 Mar 2026 19:59:47 +0100 Subject: [PATCH] chore: clean misplaced repo artifacts --- .github/ISSUE_187_COMMENT.md | 89 --- .github/ISSUE_49_COMMENT.md | 15 - .gitignore | 6 + README.zh-CN.md | 565 ------------------ docs/integrations/jetski-cortex.md | 2 +- .../jetski-gemini-loader/README.md | 0 .../jetski-gemini-loader/loader.ts | 0 docs/users/windows-truncation-recovery.md | 2 +- issues/244/comment.md | 66 -- .../todo-app-generated/backend/.gitignore | 2 + .../todo-app-generated/backend/todos.db-shm | Bin 32768 -> 0 bytes .../todo-app-generated/backend/todos.db-wal | Bin 45352 -> 0 bytes .../spline-3d-integration-skill (1).zip | Bin 21119 -> 0 bytes requirements.txt => tools/requirements.txt | 0 .../tests/jetski_gemini_loader.test.js | 3 +- 15 files changed, 12 insertions(+), 738 deletions(-) delete mode 100644 .github/ISSUE_187_COMMENT.md delete mode 100644 .github/ISSUE_49_COMMENT.md delete mode 100644 README.zh-CN.md rename {examples => docs/integrations}/jetski-gemini-loader/README.md (100%) rename {examples => docs/integrations}/jetski-gemini-loader/loader.ts (100%) delete mode 100644 issues/244/comment.md delete mode 100644 skills/loki-mode/examples/todo-app-generated/backend/todos.db-shm delete mode 100644 skills/loki-mode/examples/todo-app-generated/backend/todos.db-wal delete mode 100644 skills/spline-3d-integration/spline-3d-integration-skill (1).zip rename requirements.txt => tools/requirements.txt (100%) diff --git a/.github/ISSUE_187_COMMENT.md b/.github/ISSUE_187_COMMENT.md deleted file mode 100644 index 84bebda4..00000000 --- a/.github/ISSUE_187_COMMENT.md +++ /dev/null @@ -1,89 +0,0 @@ -Suggested comment for [Issue #187](https://github.com/sickn33/antigravity-awesome-skills/issues/187). Paste this on the issue: - ---- - -Great questions! Here are answers to both: - ---- - -### 1. Global rule for Context7 alongside skills - -**Yes, it is absolutely worth it.** Context7 and skills serve different purposes and are fully complementary: - -- **Skills** provide process guidance, domain expertise, workflows, and best-practice checklists. They tell the AI *how* to approach a task. -- **Context7** (`@context7-auto-research`) fetches *live, up-to-date documentation* for the specific library or framework version you are actually using. Skills cannot replace this—they have no mechanism to pull current API references at runtime. - -Recommended global rule (add to your `CLAUDE.md` or project settings): - -``` -When working with any library, framework, or external API, use Context7 to fetch -current documentation before writing or reviewing code. -``` - -This ensures the AI doesn't rely on potentially outdated training data for fast-moving ecosystems (Next.js app router, Prisma, shadcn/ui, etc.). - ---- - -### 2. Maintaining development state across chat sessions - -There is a **built-in skill system** for exactly this: the **Conductor** workflow. You don't need to manually request summaries every time—you just set it up once and it self-maintains. - -#### How it works - -Conductor keeps all project state in a `conductor/` directory that lives alongside your code: - -``` -conductor/ -├── index.md ← read this at the start of every session -├── product.md ← what you're building and why -├── tech-stack.md ← your dependencies and architecture decisions -├── workflow.md ← your dev practices and quality gates -├── tracks.md ← registry of all tasks (your todo.md equivalent) -└── tracks/ - └── / - ├── spec.md ← acceptance criteria - ├── plan.md ← task checklist with [x]/[~]/[ ] status - └── metadata.json ← progress counters, current task -``` - -`tracks.md` + `plan.md` are the living task.md/todo.md you were looking for. Every completed task, phase, and decision is committed to git alongside the code. - -#### Getting started - -| Command | What it does | -|---|---| -| `/conductor:setup` | One-time setup — creates all context files interactively | -| `/conductor:new-track "description"` | Creates a spec + phased plan for a new feature/fix | -| `/conductor:implement` | Executes the next pending task, updating plan.md as it goes | -| `/conductor:status` | Shows overall progress, active track, next actions | - -#### Starting a new session reliably - -At the top of any new chat, ask the AI to: - -``` -Read conductor/index.md, then conductor/tracks.md, then the plan.md -for any in-progress track. Summarise where we left off and what the -next task is. -``` - -Because every completed task is marked `[x]` and committed, the AI will always reconstruct the exact state — no manual summary needed. - -#### Relevant skills to install - -```bash -# One-time project setup -npx antigravity-awesome-skills add conductor-setup - -# Day-to-day development -npx antigravity-awesome-skills add conductor-status -npx antigravity-awesome-skills add conductor-implement -npx antigravity-awesome-skills add conductor-new-track - -# For deeper session continuity reading -npx antigravity-awesome-skills add context-driven-development -npx antigravity-awesome-skills add context-management-context-save -npx antigravity-awesome-skills add context-management-context-restore -``` - -Hope this helps — welcome to the community! 🎉 diff --git a/.github/ISSUE_49_COMMENT.md b/.github/ISSUE_49_COMMENT.md deleted file mode 100644 index 5a963436..00000000 --- a/.github/ISSUE_49_COMMENT.md +++ /dev/null @@ -1,15 +0,0 @@ -Suggested comment for [Issue #49](https://github.com/sickn33/antigravity-awesome-skills/issues/49). Paste this on the issue: - ---- - -The 404 happens because the package wasn’t published to npm yet. We’ve addressed it in two ways: - -1. **Publish to npm** – We’re set up to publish so `npx antigravity-awesome-skills` will work after the first release. You can also trigger a manual publish via the “Publish to npm” workflow (Actions tab) if you have `NPM_TOKEN` configured. - -2. **Fallback** – Until then (or if you hit a 404 for any reason), use: - ```bash - npx github:sickn33/antigravity-awesome-skills - ``` - The README, GETTING_STARTED, and FAQ now mention this fallback. - -Thanks for reporting. diff --git a/.gitignore b/.gitignore index 6e46583a..9e8dd89c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,10 @@ __pycache__/ antigravity-awesome-skills-*.tgz .agent/rules/ +.claude-plugin/ +.codex/ .gemini/ +.release-clone-*/ data/node_modules # Temporary analysis and report files @@ -37,3 +40,6 @@ validation-baseline.json # Web app generated assets (from npm run app:setup) apps/web-app/public/skills/ apps/web-app/public/skills.json + +# Local duplicate/download artifacts +skills/spline-3d-integration/*.zip diff --git a/README.zh-CN.md b/README.zh-CN.md deleted file mode 100644 index 3584058c..00000000 --- a/README.zh-CN.md +++ /dev/null @@ -1,565 +0,0 @@ - -# 🌌 Antigravity Awesome Skills: 1,272+ 通用代理技能 适用于 Claude Code、Gemini CLI、Cursor、Copilot 及更多 - -> **面向AI编码助手的1,272+通用代理技能终极集合 — Claude Code、Gemini CLI、Codex CLI、Antigravity IDE、GitHub Copilot、Cursor、OpenCode、AdaL** - -[![GitHub stars](https://img.shields.io/badge/⭐%2021%2C000%20Stars-old?style=for-the-badge)](https://github.com/sickn33/antigravity-awesome-skills/stargazers) -[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -[![Claude Code](https://img.shields.io/badge/Claude%20Code-Anthropic-purple)](https://claude.ai) -[![Gemini CLI](https://img.shields.io/badge/Gemini%20CLI-Google-blue)](https://github.com/google-gemini/gemini-cli) -[![Codex CLI](https://img.shields.io/badge/Codex%20CLI-OpenAI-green)](https://github.com/openai/codex) -[![Kiro](https://img.shields.io/badge/Kiro-AWS-orange)](https://kiro.dev) -[![Cursor](https://img.shields.io/badge/Cursor-AI%20IDE-orange)](https://cursor.sh) -[![Copilot](https://img.shields.io/badge/GitHub%20Copilot-VSCode-lightblue)](https://github.com/features/copilot) -[![OpenCode](https://img.shields.io/badge/OpenCode-CLI-gray)](https://github.com/opencode-ai/opencode) -[![Antigravity](https://img.shields.io/badge/Antigravity-DeepMind-red)](https://github.com/sickn33/antigravity-awesome-skills) -[![AdaL CLI](https://img.shields.io/badge/AdaL%20CLI-SylphAI-pink)](https://sylph.ai/) -[![ASK Supported](https://img.shields.io/badge/ASK-Supported-blue)](https://github.com/yeasy/ask) -[![Web App](https://img.shields.io/badge/Web%20App-Browse%20Skills-blue)](apps/web-app) -[![Buy Me a Book](https://img.shields.io/badge/Buy%20me%20a-book-d13610?logo=buymeacoffee&logoColor=white)](https://buymeacoffee.com/sickn33) - -🌟 **21,000+ GitHub Stars Milestone!** 感谢社区将此项目转变为同类最大技能库之一! - -**Antigravity Awesome Skills** 是一个精选、经过实战检验的**1,272+高性能代理技能**库,旨在与所有主要AI编码助手无缝协作: - -- 🟣 **Claude Code** (Anthropic CLI) -- 🔵 **Gemini CLI** (Google DeepMind) -- 🟢 **Codex CLI** (OpenAI) -- 🟠 **Kiro CLI** (AWS) -- 🟠 **Kiro IDE** (AWS) -- 🔴 **Antigravity IDE** (Google DeepMind) -- 🩵 **GitHub Copilot** (VSCode扩展) -- 🟠 **Cursor** (AI原生IDE) -- ⚪ **OpenCode** (开源CLI) -- 🌸 **AdaL CLI** (自我进化编码代理) - -此仓库提供了将您的AI助手转变为**全栈数字代理**的基本技能,包括来自**Anthropic**、**OpenAI**、**Google**、**Microsoft**、**Supabase**、**Apify**和**Vercel Labs**的官方功能。 - -## 目录 - -- [🚀 新手?从这里开始!](#新手从这里开始) -- [📖 完整使用指南](docs_zh-CN/USAGE.md) - **如果安装后感到困惑,从这里开始!** -- [🔌 兼容性与调用方式](#兼容性与调用方式) -- [🛠️ 安装](#安装) -- [🧯 故障排除](#故障排除) -- [🎁 精选集合(包)](#精选集合) -- [🧭 Antigravity工作流](#antigravity工作流) -- [📦 功能与分类](#功能与分类) -- [📚 浏览1,272+技能](#浏览1272技能) -- [🤝 如何贡献](#如何贡献) -- [💬 社区](#社区) -- [☕ 支持项目](#支持项目) -- [🏆 致谢与来源](#致谢与来源) -- [👥 仓库贡献者](#仓库贡献者) -- [⚖️ 许可证](#许可证) -- [🌟 Star历史](#star历史) - ---- - -## 新手?从这里开始! - -**欢迎来到V7.1.0交互式网络版。**这不仅仅是一个脚本列表;它是您的AI代理的完整操作系统。 - -### 1. 🐣 背景:这是什么? - -**Antigravity Awesome Skills** (Release 7.1.0) 是对AI能力的巨大升级。 - -AI代理(如Claude Code、Cursor或Gemini)很智能,但它们缺乏**特定工具**。它们不知道您公司的"部署协议"或"AWS CloudFormation"的特定语法。 -**技能**是小型markdown文件,可以教它们如何完美地完成这些特定任务,每次都如此。 - -### 2. ⚡️ 快速开始(1分钟) - -安装一次;然后使用[docs_zh-CN/BUNDLES.md](docs_zh-CN/BUNDLES.md)中的入门包来专注于您的角色。 - -1. **安装**: - - ```bash - # 默认:~/.gemini/antigravity/skills (Antigravity全局)。使用--path指定其他位置。 - npx antigravity-awesome-skills - ``` - -2. **验证**: - - ```bash - test -d ~/.gemini/antigravity/skills && echo "技能已安装在 ~/.gemini/antigravity/skills" - ``` - -3. **运行您的第一个技能**: - - > "使用**@brainstorming**来规划SaaS MVP。" - -4. **选择一个包**: - - **Web开发?**从`Web 向导`开始。 - - **安全?**从`Security Engineer`开始。 - - **通用使用?**从`基础`开始。 - -### 3. 🧠 如何使用 - -安装完成后,只需自然地询问您的代理: - -> "使用**@brainstorming**技能帮我规划SaaS。" -> "在这个文件上运行**@lint-and-validate**。" - -👉 **新功能:**[**完整使用指南 - 先读这个!**](docs_zh-CN/USAGE.md)(答案:"安装后我该做什么?"、"我如何执行技能?"、"提示词应该是什么样的?") - -👉 **[完整入门指南](docs_zh-CN/GETTING_STARTED.md)** - ---- - -## 兼容性与调用方式 - -这些技能遵循通用的**SKILL.md**格式,适用于任何支持代理技能的AI编码助手。 - -| 工具 | 类型 | 调用示例 | 路径 | -| :-------------- | :--- | :---------------------------- | :--------------------------------------------------------------------- | -| **Claude Code** | CLI | `>> /skill-name 帮我...` | `.claude/skills/` | -| **Gemini CLI** | CLI | `(用户提示) 使用skill-name...` | `.gemini/skills/` | -| **Codex CLI** | CLI | `(用户提示) 使用skill-name...` | `.codex/skills/` | -| **Kiro CLI** | CLI | `(自动) 按需加载技能` | 全局:`~/.kiro/skills/` · 工作区:`.kiro/skills/` | -| **Kiro IDE** | IDE | `/skill-name 或 (自动)` | 全局:`~/.kiro/skills/` · 工作区:`.kiro/skills/` | -| **Antigravity** | IDE | `(代理模式) 使用skill...` | 全局:`~/.gemini/antigravity/skills/` · 工作区:`.agent/skills/` | -| **Cursor** | IDE | `@skill-name (在聊天中)` | `.cursor/skills/` | -| **Copilot** | 扩展 | `(手动粘贴内容)` | 不适用用 | -| **OpenCode** | CLI | `opencode run @skill-name` | `.agents/skills/` | -| **AdaL CLI** | CLI | `(自动) 按需加载技能` | `.adal/skills/` | - -> [!TIP] -> **默认安装路径**:`~/.gemini/antigravity/skills` (Antigravity全局)。使用`--path ~/.agent/skills`进行工作区特定安装。对于手动克隆,`.agent/skills/`可作为Antigravity的工作区路径。 -> **OpenCode路径更新**:opencode路径已更改为`.agents/skills`作为全局技能。请参见OpenCode文档上的[放置文件](https://opencode.ai/docs/skills/#place-files)指令。 - -> [!WARNING] -> **Windows用户**:此仓库为官方技能使用**符号链接**。 -> 有关确切的修复方法,请参见[故障排除](#故障排除)。 - ---- - -## 安装 - -要在**Claude Code**、**Gemini CLI**、**Codex CLI**、**Kiro CLI**、**Kiro IDE**、**Cursor**、**Antigravity**、**OpenCode**或**AdaL**中使用这些技能: - -### 选项A:npx(推荐) - -```bash -npx antigravity-awesome-skills - -# Antigravity(明确;与默认相同) -npx antigravity-awesome-skills --antigravity - -# Kiro CLI/IDE(全局) -npx antigravity-awesome-skills --path ~/.kiro/skills - -# Kiro CLI/IDE(工作区) -npx antigravity-awesome-skills --path .kiro/skills - -# Cursor -npx antigravity-awesome-skills --cursor - -# Claude Code -npx antigravity-awesome-skills --claude - -# Gemini CLI -npx antigravity-awesome-skills --gemini - -# Codex CLI -npx antigravity-awesome-skills --codex - -# Kiro CLI -npx antigravity-awesome-skills --kiro - -# OpenCode -npx antigravity-awesome-skills --path .agents/skills - -# AdaL CLI -npx antigravity-awesome-skills --path .adal/skills - -# 工作区特定(例如Antigravity工作区的.agent/skills) -npx antigravity-awesome-skills --path ~/.agent/skills - -# 自定义路径 -npx antigravity-awesome-skills --path ./my-skills -``` - -运行`npx antigravity-awesome-skills --help`查看所有选项。如果目录已存在,安装程序会运行`git pull`来更新。 - -### 选项B:git克隆 - -如果不使用`--path`,npx安装程序使用`~/.gemini/antigravity/skills`。对于手动克隆或不同路径(例如工作区`.agent/skills`),使用以下方法之一: - -```bash -# Antigravity全局(匹配npx默认) -git clone https://github.com/sickn33/antigravity-awesome-skills.git ~/.gemini/antigravity/skills - -# 工作区特定(例如项目中的.agent/skills) -git clone https://github.com/sickn33/antigravity-awesome-skills.git .agent/skills - -# Kiro CLI/IDE全局 -git clone https://github.com/sickn33/antigravity-awesome-skills.git ~/.kiro/skills - -# Claude Code特定 -git clone https://github.com/sickn33/antigravity-awesome-skills.git .claude/skills - -# Gemini CLI特定 -git clone https://github.com/sickn33/antigravity-awesome-skills.git .gemini/skills - -# Codex CLI特定 -git clone https://github.com/sickn33/antigravity-awesome-skills.git .codex/skills - -# Cursor特定 -git clone https://github.com/sickn33/antigravity-awesome-skills.git .cursor/skills - -# OpenCode -git clone https://github.com/sickn33/antigravity-awesome-skills.git .agents/skills - -# AdaL CLI特定 -git clone https://github.com/sickn33/antigravity-awesome-skills.git .adal/skills -``` - -### 选项C:Kiro IDE导入(GUI) - -对于Kiro IDE用户,您可以直接导入单个技能: - -1. 在Kiro IDE中打开**Agent Steering & Skills**面板 -2. 点击**+** → **导入技能** → **GitHub** -3. 粘贴技能URL:`https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/[skill-name]` -4. 示例:`https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/aws-cost-optimizer` - -> **注意**:这一次只导入一个技能。对于批量安装,请使用上面的选项A或B。 - ---- - -## 故障排除 - -### `npx antigravity-awesome-skills`返回404 - -使用GitHub包回退: - -```bash -npx github:sickn33/antigravity-awesome-skills -``` - -### Windows克隆问题(符号链接) - -此仓库为官方技能使用符号链接。启用开发者模式或以管理员身份运行Git,然后使用以下方式克隆: - -```bash -git clone -c core.symlinks=true https://github.com/sickn33/antigravity-awesome-skills.git .agent/skills -``` - -### 技能已安装但工具未检测到 - -安装到工具特定路径。使用安装程序标志:`--antigravity`(默认)、`--claude`、`--gemini`、`--codex`、`--cursor`或`--path `用于自定义位置(例如Antigravity工作区的`~/.agent/skills`)。 - -### 更新现有安装 - -**好消息!**您不再需要手动运行`git pull`或`npx antigravity-awesome-skills`来更新您的技能。 - -- **Windows:**双击**`START_APP.bat`**(或在终端中运行)。 -- **macOS/Linux:**从仓库根目录运行`cd web-app && npm run app:dev`。 - -两种方法每次打开Web应用时都会自动从原始仓库获取并合并最新技能,确保您始终拥有最新的目录。 - -### 从头重新安装 - -```bash -rm -rf ~/.gemini/antigravity/skills -npx antigravity-awesome-skills -``` - ---- - -## 精选集合 - -**包**是针对特定角色或目标(例如:`Web Wizard`、`Security Engineer`、`OSS Maintainer`)的精选技能组。 - -它们帮助您避免从950+技能中逐个选择。 - -### ⚠️ 重要:包不是单独的安装! - -**常见困惑**:"我需要单独安装每个包吗?" - -**答案:不需要!**以下是包的实际内容: - -**包是什么:** - -- ✅ 按角色组织的推荐技能列表 -- ✅ 帮助您决定使用什么的精选起点 -- ✅ 发现相关技能的省时快捷方式 - -**包不是什么:** - -- ❌ 单独的安装或下载 -- ❌ 不同的git命令 -- ❌ 需要您"激活"的东西 - -### 如何使用包: - -1. **安装仓库一次**(您已经拥有所有技能) -2. **浏览[docs_zh-CN/BUNDLES.md](docs_zh-CN/BUNDLES.md)中的包**来找到您的角色 -3. **从该包中选择3-5个技能**开始在提示中使用 -4. **在与AI的对话中引用它们**(例如,"使用@brainstorming...") - -有关如何实际使用技能的详细示例,请参见[**使用指南**](docs_zh-CN/USAGE.md)。 - -### 示例: - -- 构建SaaS MVP:`Essentials` + `Full-Stack Developer` + `QA & Testing`。 -- 加固生产环境:`Security Developer` + `DevOps & Cloud` + `Observability & Monitoring`。 -- 发布OSS变更:`Essentials` + `OSS Maintainer`。 - -## Antigravity工作流 - -包帮助您选择技能。工作流帮助您按顺序执行它们。 - -- 当您需要按角色获取推荐时使用包。 -- 当您需要为实现具体目标而逐步执行时使用工作流。 - -从这里开始: - -- [docs_zh-CN/WORKFLOWS.md](docs_zh-CN/WORKFLOWS.md):人类可读的剧本。 -- [data/workflows.json](data/workflows.json):机器可读的工作流元数据。 - -初始工作流包括: - -- 发布SaaS MVP -- Web应用安全审计 -- 构建AI代理系统 -- QA和浏览器自动化(可选的`@go-playwright`支持Go堆栈) - -## 功能与分类 - -仓库被组织成专业领域,将您的AI转变为整个软件开发生命周期的专家: - -| 分类 | 重点 | 示例技能 | -| :------------- | :------------------------------------------------- | :------------------------------------------------------------------------------ | -| 架构 | 系统设计、ADR、C4和可扩展模式 | `architecture`, `c4-context`, `senior-architect` | -| 商业 | 增长、定价、CRO、SEO和进入市场 | `copywriting`, `pricing-strategy`, `seo-audit` | -| 数据与AI | LLM应用、RAG、代理、可观测性、分析 | `rag-engineer`, `prompt-engineer`, `langgraph` | -| 开发 | 语言精通、框架模式、代码质量 | `typescript-expert`, `python-patterns`, `react-patterns` | -| 通用 | 规划、文档、产品运营、写作、指南 | `brainstorming`, `doc-coauthoring`, `writing-plans` | -| 基础设施 | DevOps、云、无服务器、部署、CI/CD | `docker-expert`, `aws-serverless`, `vercel-deployment` | -| 安全 | 应用安全、渗透测试、漏洞分析、合规 | `api-security-best-practices`, `sql-injection-testing`, `vulnerability-scanner` | -| 测试 | TDD、测试设计、修复、QA工作流 | `test-driven-development`, `testing-patterns`, `test-fixing` | -| 工作流 | 自动化、编排、作业、代理 | `workflow-automation`, `inngest`, `trigger-dev` | - -计数随着新技能的添加而变化。有关当前完整注册表,请参见[CATALOG.md](CATALOG.md)。 - - -## 浏览1,272+技能 - -- 在[`apps/web-app`](apps/web-app)中打开交互式浏览器。 -- 阅读完整目录:[`CATALOG.md`](CATALOG.md)。 -- 从[`docs_zh-CN/users/bundles.md`](docs_zh-CN/users/bundles.md)中的基于角色的包开始。 -- 遵循[`docs_zh-CN/users/workflows.md`](docs_zh-CN/users/workflows.md)中以结果为导向的工作流。 -- 使用[`docs_zh-CN/users/getting-started.md`](docs_zh-CN/users/getting-started.md)和[`docs_zh-CN/users/usage.md`](docs_zh-CN/users/usage.md)中的入门指南。 - -## 文档 - -| 面向用户 | 面向贡献者 | 面向维护者 | -| ---------------------------------------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | -| [`docs_zh-CN/users/getting-started.md`](docs_zh-CN/users/getting-started.md) | [`CONTRIBUTING.md`](CONTRIBUTING.md) | [`docs_zh-CN/maintainers/release-process.md`](docs_zh-CN/maintainers/release-process.md) | -| [`docs_zh-CN/users/usage.md`](docs_zh-CN/users/usage.md) | [`docs_zh-CN/contributors/skill-anatomy.md`](docs_zh-CN/contributors/skill-anatomy.md) | [`docs_zh-CN/maintainers/audit.md`](docs_zh-CN/maintainers/audit.md) | -| [`docs_zh-CN/users/faq.md`](docs_zh-CN/users/faq.md) | [`docs_zh-CN/contributors/quality-bar.md`](docs_zh-CN/contributors/quality-bar.md) | [`docs_zh-CN/maintainers/ci-drift-fix.md`](docs_zh-CN/maintainers/ci-drift-fix.md) | -| [`docs_zh-CN/users/visual-guide.md`](docs_zh-CN/users/visual-guide.md) | [`docs_zh-CN/contributors/examples.md`](docs_zh-CN/contributors/examples.md) | [`docs_zh-CN/maintainers/skills-update-guide.md`](docs_zh-CN/maintainers/skills-update-guide.md) | - -## Web应用 - -Web应用是导航如此大型仓库的最快方式。 - -**本地运行:** - -```bash -npm run app:install -npm run app:dev -``` - -这会将生成的技能索引复制到`apps/web-app/public/skills.json`,将当前的`skills/`目录树镜像到`apps/web-app/public/skills/`,并启动Vite开发服务器。 - -**在线托管:**相同的应用可在[https://sickn33.github.io/antigravity-awesome-skills/](https://sickn33.github.io/antigravity-awesome-skills/)获得,并在每次推送到`main`时自动部署。要启用一次:**Settings → Pages → Build and deployment → Source: GitHub Actions**。 - - - -## 贡献 - -- 在`skills//SKILL.md`下添加新技能。 -- 遵循[`CONTRIBUTING.md`](CONTRIBUTING.md)中的贡献者指南。 -- 使用[`docs_zh-CN/contributors/skill-template.md`](docs_zh-CN/contributors/skill-template.md)中的模板。 -- 在打开PR之前使用`npm run validate`进行验证。 - -## 社区 - -- [Discussions](https://github.com/sickn33/antigravity-awesome-skills/discussions)用于提问和反馈。 -- [Issues](https://github.com/sickn33/antigravity-awesome-skills/issues)用于错误报告和改进请求。 -- [`SECURITY.md`](SECURITY.md)用于安全报告。 - ---- - -## 支持项目 - -支持是可选的。这个项目对每个人保持免费和开源。 - -- [☕ 在Buy Me a Coffee上给原作者买本书](https://buymeacoffee.com/sickn33) -- Star仓库。 -- 提出清晰、可重现的问题。 -- 提交PR(技能、文档、修复)。 - ---- - -## 致谢与来源 - -我们站在巨人的肩膀上。 - -👉 **[查看完整归属账本](docs_zh-CN/SOURCES.md)** - -主要贡献者和来源包括: - -- **HackTricks** -- **OWASP** -- **Anthropic / OpenAI / Google** -- **开源社区** - -如果没有Claude Code社区和官方来源的不可思议工作,这个集合是不可能的: - -### 官方来源 - -- **[anthropics/skills](https://github.com/anthropics/skills)**:官方Anthropic技能仓库 - 文档操作(DOCX、PDF、PPTX、XLSX)、品牌指南、内部通信。 -- **[anthropics/claude-cookbooks](https://github.com/anthropics/claude-cookbooks)**:与Claude一起构建的官方笔记本和食谱。 -- **[remotion-dev/skills](https://github.com/remotion-dev/skills)**:官方Remotion技能 - React中视频创作,具有28个模块化规则。 -- **[vercel-labs/agent-skills](https://github.com/vercel-labs/agent-skills)**:Vercel Labs官方技能 - React最佳实践、Web设计指南。 -- **[openai/skills](https://github.com/openai/skills)**:OpenAI Codex技能目录 - 代理技能、技能创建者、简洁规划。 -- **[supabase/agent-skills](https://github.com/supabase/agent-skills)**:Supabase官方技能 - Postgres最佳实践。 -- **[microsoft/skills](https://github.com/microsoft/skills)**:官方Microsoft技能 - Azure云服务、Bot Framework、认知服务,以及跨.NET、Python、TypeScript、Go、Rust和Java的企业开发模式。 -- **[google-gemini/gemini-skills](https://github.com/google-gemini/gemini-skills)**:官方Gemini技能 - Gemini API、SDK和模型交互。 -- **[apify/agent-skills](https://github.com/apify/agent-skills)**:官方Apify技能 - Web抓取、数据提取和自动化。 - -### 社区贡献者 - -- **[rmyndharis/antigravity-skills](https://github.com/rmyndharis/antigravity-skills)**:贡献了300+企业技能和目录生成逻辑。 -- **[amartelr/antigravity-workspace-manager](https://github.com/amartelr/antigravity-workspace-manager)**:官方工作区管理器CLI配套工具,用于跨无限本地开发环境动态自动配置技能子集。 -- **[obra/superpowers](https://github.com/obra/superpowers)**:Jesse Vincent的原始"Superpowers"。 -- **[guanyang/antigravity-skills](https://github.com/guanyang/antigravity-skills)**:核心Antigravity扩展。 -- **[diet103/claude-code-infrastructure-showcase](https://github.com/diet103/claude-code-infrastructure-showcase)**:基础设施和后端/前端指南。 -- **[ChrisWiles/claude-code-showcase](https://github.com/ChrisWiles/claude-code-showcase)**:React UI模式和设计系统。 -- **[travisvn/awesome-claude-skills](https://github.com/travisvn/awesome-claude-skills)**:Loki模式和Playwright集成。 -- **[zebbern/claude-code-guide](https://github.com/zebbern/claude-code-guide)**:综合安全套件和指南(约60个新技能的来源)。 -- **[alirezarezvani/claude-skills](https://github.com/alirezarezvani/claude-skills)**:高级工程和PM工具包。 -- **[karanb192/awesome-claude-skills](https://github.com/karanb192/awesome-claude-skills)**:Claude Code的大量已验证技能列表。 -- **[VoltAgent/awesome-agent-skills](https://github.com/VoltAgent/awesome-agent-skills)**:精选的61个高质量技能集合,包括来自Sentry、Trail of Bits、Expo、Hugging Face的官方团队技能和综合上下文工程套件(v4.3.0集成)。 -- **[zircote/.claude](https://github.com/zircote/.claude)**:Shopify开发技能参考。 -- **[vibeforge1111/vibeship-spawner-skills](https://github.com/vibeforge1111/vibeship-spawner-skills)**:AI代理、集成、制作工具(57个技能,Apache 2.0)。 -- **[coreyhaines31/marketingskills](https://github.com/coreyhaines31/marketingskills)**:用于CRO、文案、SEO、付费广告和增长的营销技能(23个技能,MIT)。 -- **[Silverov/yandex-direct-skill](https://github.com/Silverov/yandex-direct-skill)**:Yandex Direct(API v5)广告审计技能 — 55个自动检查,A-F评分,俄罗斯PPC市场的活动/广告/关键词分析(MIT)。 -- **[vudovn/antigravity-kit](https://github.com/vudovn/antigravity-kit)**:AI代理模板,包含技能、代理和工作流(33个技能,MIT)。 -- **[affaan-m/everything-claude-code](https://github.com/affaan-m/everything-claude-code)**:来自Anthropic黑客马拉松获胜者的完整Claude Code配置集合 - 仅技能(8个技能,MIT)。 -- **[whatiskadudoing/fp-ts-skills](https://github.com/whatiskadudoing/fp-ts-skills)**:TypeScript的实用fp-ts技能 – fp-ts-pragmatic、fp-ts-react、fp-ts-errors(v4.4.0)。 -- **[webzler/agentMemory](https://github.com/webzler/agentMemory)**:agent-memory-mcp技能的来源。 -- **[sstklen/claude-api-cost-optimization](https://github.com/sstklen/claude-api-cost-optimization)**:通过智能优化策略节省50-90%的Claude API成本(MIT)。 -- **[Wittlesus/cursorrules-pro](https://github.com/Wittlesus/cursorrules-pro)**:8个框架的专业.cursorrules配置 - Next.js、React、Python、Go、Rust等。适用于Cursor、Claude Code和Windsurf。 -- **[nedcodes-ok/rule-porter](https://github.com/nedcodes-ok/rule-porter)**:Cursor(.mdc)、Claude Code(CLAUDE.md)、GitHub Copilot、Windsurf和传统.cursorrules格式之间的双向规则转换器。零依赖。 -- **[SSOJet/skills](https://github.com/ssojet/skills)**:生产就绪的SSOJet技能和流行框架及平台的集成指南 — Node.js、Next.js、React、Java、.NET Core、Go、iOS、Android等。与SSOJet SAML、OIDC和企业SSO流无缝协作。适用于Cursor、Antigravity、Claude Code和Windsurf。 -- **[MojoAuth/skills](https://github.com/MojoAuth/skills)**:流行框架的生产就绪MojoAuth指南和示例,如Node.js、Next.js、React、Java、.NET Core、Go、iOS和Android。 -- **[Xquik-dev/x-twitter-scraper](https://github.com/Xquik-dev/x-twitter-scraper)**:X(Twitter)数据平台 — 推文搜索、用户查询、关注者提取、参与指标、赠品抽奖、监控、webhooks、19个提取工具、MCP服务器。 -- **[shmlkv/dna-claude-analysis](https://github.com/shmlkv/dna-claude-analysis)**:个人基因组分析工具包 — 分析原始DNA数据的Python脚本,跨越17个类别(健康风险、祖先、药物基因组学、营养、心理学等),具有终端风格的单页HTML可视化。 -- **[AlmogBaku/debug-skill](https://github.com/AlmogBaku/debug-skill)**: Interactive debugger skill for AI agents — breakpoints, stepping, variable inspection, and stack traces via the `dap` CLI. Supports Python, Go, Node.js/TypeScript, Rust, and C/C++. - -### 灵感来源 -- **[f/awesome-chatgpt-prompts](https://github.com/f/awesome-chatgpt-prompts)**:提示库的灵感。 -- **[leonardomso/33-js-concepts](https://github.com/leonardomso/33-js-concepts)**:JavaScript精通的灵感。 -### 其他来源 -- **[agent-cards/skill](https://github.com/agent-cards/skill)**:为AI代理管理预付虚拟Visa卡。创建卡片、检查余额、查看凭证、关闭卡片,并通过MCP工具获取支持。 ---- - -## 仓库贡献者 - - - Repository contributors - - -使用[contrib.rocks](https://contrib.rocks)制作。 - -我们正式感谢以下贡献者帮助使这个仓库变得精彩! - -- [@sickn33](https://github.com/sickn33) -- [@munir-abbasi](https://github.com/munir-abbasi) -- [@ssumanbiswas](https://github.com/ssumanbiswas) -- [@zinzied](https://github.com/zinzied) -- [@Mohammad-Faiz-Cloud-Engineer](https://github.com/Mohammad-Faiz-Cloud-Engineer) -- [@Dokhacgiakhoa](https://github.com/Dokhacgiakhoa) -- [@IanJ332](https://github.com/IanJ332) -- [@chauey](https://github.com/chauey) -- [@ar27111994](https://github.com/ar27111994) -- [@8hrsk](https://github.com/8hrsk) -- [@itsmeares](https://github.com/itsmeares) -- [@GuppyTheCat](https://github.com/GuppyTheCat) -- [@fernandorych](https://github.com/fernandorych) -- [@nikolasdehor](https://github.com/nikolasdehor) -- [@talesperito](https://github.com/talesperito) -- [@jackjin1997](https://github.com/jackjin1997) -- [@HuynhNhatKhanh](https://github.com/HuynhNhatKhanh) -- [@liyin2015](https://github.com/liyin2015) -- [@arathiesh](https://github.com/arathiesh) -- [@Tiger-Foxx](https://github.com/Tiger-Foxx) -- [@Musayrlsms](https://github.com/Musayrlsms) -- [@sohamganatra](https://github.com/sohamganatra) -- [@SuperJMN](https://github.com/SuperJMN) -- [@SebConejo](https://github.com/SebConejo) -- [@Onsraa](https://github.com/Onsraa) -- [@truongnmt](https://github.com/truongnmt) -- [@code-vj](https://github.com/code-vj) -- [@viktor-ferenczi](https://github.com/viktor-ferenczi) -- [@vprudnikoff](https://github.com/vprudnikoff) -- [@Vonfry](https://github.com/Vonfry) -- [@Wittlesus](https://github.com/Wittlesus) -- [@avimak](https://github.com/avimak) -- [@buzzbysolcex](https://github.com/buzzbysolcex) -- [@c1c3ru](https://github.com/c1c3ru) -- [@ckdwns9121](https://github.com/ckdwns9121) -- [@developer-victor](https://github.com/developer-victor) -- [@fbientrigo](https://github.com/fbientrigo) -- [@junited31](https://github.com/junited31) -- [@KrisnaSantosa15](https://github.com/KrisnaSantosa15) -- [@nocodemf](https://github.com/nocodemf) -- [@sstklen](https://github.com/sstklen) -- [@taksrules](https://github.com/taksrules) -- [@thuanlm215](https://github.com/thuanlm215) -- [@zebbern](https://github.com/zebbern) -- [@vuth-dogo](https://github.com/vuth-dogo) -- [@ALEKGG1](https://github.com/ALEKGG1) -- [@Abdulrahmansoliman](https://github.com/Abdulrahmansoliman) -- [@alexmvie](https://github.com/alexmvie) -- [@Andruia](https://github.com/Andruia) -- [@acbhatt12](https://github.com/acbhatt12) -- [@BenedictKing](https://github.com/BenedictKing) -- [@rcigor](https://github.com/rcigor) -- [@whatiskadudoing](https://github.com/whatiskadudoing) -- [@k-kolomeitsev](https://github.com/k-kolomeitsev) -- [@Krishna-Modi12](https://github.com/Krishna-Modi12) -- [@kromahlusenii-ops](https://github.com/kromahlusenii-ops) -- [@djmahe4](https://github.com/djmahe4) -- [@maxdml](https://github.com/maxdml) -- [@mertbaskurt](https://github.com/mertbaskurt) -- [@nedcodes-ok](https://github.com/nedcodes-ok) -- [@LocNguyenSGU](https://github.com/LocNguyenSGU) -- [@KhaiTrang1995](https://github.com/KhaiTrang1995) -- [@sharmanilay](https://github.com/sharmanilay) -- [@yubing744](https://github.com/yubing744) -- [@PabloASMD](https://github.com/PabloASMD) -- [@0xrohitgarg](https://github.com/0xrohitgarg) -- [@Silverov](https://github.com/Silverov) -- [@shmlkv](https://github.com/shmlkv) -- [@kriptoburak](https://github.com/kriptoburak) - ---- - -## 许可证 - -MIT许可证。详细信息请参见[LICENSE](LICENSE)。 - ---- - -## Star历史 - -[![Star History Chart](https://api.star-history.com/svg?repos=sickn33/antigravity-awesome-skills&type=date&legend=top-left)](https://www.star-history.com/#sickn33/antigravity-awesome-skills&type=date&legend=top-left) - -如果Antigravity Awesome Skills对您有用,请考虑⭐给仓库加星! - - diff --git a/docs/integrations/jetski-cortex.md b/docs/integrations/jetski-cortex.md index 31993aea..fa000707 100644 --- a/docs/integrations/jetski-cortex.md +++ b/docs/integrations/jetski-cortex.md @@ -78,7 +78,7 @@ Per ottenere il percorso alla definizione della skill: ## 4. Pseudo‑codice di integrazione (TypeScript) -> Esempio completo in: [`examples/jetski-gemini-loader/`](../../examples/jetski-gemini-loader/). +> Esempio completo in: [`docs/integrations/jetski-gemini-loader/`](../../docs/integrations/jetski-gemini-loader/). ### 4.1. Tipi di base diff --git a/examples/jetski-gemini-loader/README.md b/docs/integrations/jetski-gemini-loader/README.md similarity index 100% rename from examples/jetski-gemini-loader/README.md rename to docs/integrations/jetski-gemini-loader/README.md diff --git a/examples/jetski-gemini-loader/loader.ts b/docs/integrations/jetski-gemini-loader/loader.ts similarity index 100% rename from examples/jetski-gemini-loader/loader.ts rename to docs/integrations/jetski-gemini-loader/loader.ts diff --git a/docs/users/windows-truncation-recovery.md b/docs/users/windows-truncation-recovery.md index 295b6deb..1cfc50b8 100644 --- a/docs/users/windows-truncation-recovery.md +++ b/docs/users/windows-truncation-recovery.md @@ -68,7 +68,7 @@ If you installed skills into a different location, also back up that custom dire See: - [`docs/integrations/jetski-cortex.md`](../integrations/jetski-cortex.md) -- [`examples/jetski-gemini-loader/README.md`](../../examples/jetski-gemini-loader/README.md) +- [`docs/integrations/jetski-gemini-loader/README.md`](../../docs/integrations/jetski-gemini-loader/README.md) ## Optional Windows batch helper diff --git a/issues/244/comment.md b/issues/244/comment.md deleted file mode 100644 index 57e5986f..00000000 --- a/issues/244/comment.md +++ /dev/null @@ -1,66 +0,0 @@ -Hi @adamgyongyosi! 👋 - -I see you're asking about **bundles** (I think you meant "bundle" not "bundel"). Great question! - -### What are Bundles? - -**Bundles** in this repository are **curated collections of skills** grouped together by role, expertise level, or use case. Think of them like "starter packs" that help you quickly get the right set of skills for your needs without being overwhelmed by the 1,200+ available skills. - -### How Bundles Work - -Bundles are defined in the [`build-catalog.js`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/tools/scripts/build-catalog.js#L322-L415) file. The system automatically groups skills based on keywords found in their tags, names, and descriptions. Currently, there are **5 core bundles**: - -1. **`core-dev`** - Core development skills (Python, JavaScript, TypeScript, Go, Rust, Java, React, APIs, etc.) -2. **`security-core`** - Security, privacy, and compliance essentials -3. **`k8s-core`** - Kubernetes and service mesh essentials -4. **`data-core`** - Data engineering and analytics foundations -5. **`ops-core`** - Operations, observability, and delivery pipelines - -### How to Use Bundles on WSL2 Debian 13 with Antigravity - -Since you're using **WSL2 Debian 13 with Antigravity**, here's how to work with bundles: - -#### 1. **View Available Bundles** - -Check out the complete bundle documentation: -- 📖 [Bundles Documentation](https://github.com/sickn33/antigravity-awesome-skills/blob/main/docs/users/bundles.md) - -#### 2. **Choose Your Bundle** - -Pick a bundle based on your needs. For example: -- Building web apps? → `core-dev` bundle -- Working on security? → `security-core` bundle -- DevOps work? → `ops-core` bundle - -#### 3. **Use Skills from Your Bundle** - -In Antigravity, you reference skills directly in your prompts. For example: - -```bash -# Use a skill by name -antigravity "Use python-pro to help me refactor this code" - -# Or reference specific skills -antigravity "Use fastapi-pro to create a REST API" -``` - -### Quick Start Commands - -```bash -# 1. If you haven't cloned the repo yet -git clone https://github.com/sickn33/antigravity-awesome-skills.git .agent/skills - -# 2. View the generated bundles data -cat data/bundles.json - -# 3. Browse skills in a bundle -# The bundles.json file lists all skills that belong to each bundle -``` - -### Additional Resources - -- 📖 [Complete Usage Guide](https://github.com/sickn33/antigravity-awesome-skills/blob/main/docs/users/usage.md) -- 📦 [Full Bundles Guide](https://github.com/sickn33/antigravity-awesome-skills/blob/main/docs/users/bundles.md) -- 🚀 [Getting Started](https://github.com/sickn33/antigravity-awesome-skills/blob/main/docs/users/getting-started.md) - -Hope this helps! Let me know if you have any other questions. 😊 \ No newline at end of file diff --git a/skills/loki-mode/examples/todo-app-generated/backend/.gitignore b/skills/loki-mode/examples/todo-app-generated/backend/.gitignore index c44c9e24..8b43ee23 100644 --- a/skills/loki-mode/examples/todo-app-generated/backend/.gitignore +++ b/skills/loki-mode/examples/todo-app-generated/backend/.gitignore @@ -1,4 +1,6 @@ node_modules/ dist/ *.db +*.db-wal +*.db-shm .env diff --git a/skills/loki-mode/examples/todo-app-generated/backend/todos.db-shm b/skills/loki-mode/examples/todo-app-generated/backend/todos.db-shm deleted file mode 100644 index 2e6aae8e7394649e5871f61aa0afe74963370992..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI)Esg>~5C+hK;U9w>hsAIZ1ScR|0E6HJD2{>Jtis_q1KB&QT(<^+f$j+cMS|R& z_a&8{On17{?*LVPPa~(Dsu3|7rnN|QoPR9W`^(Q}^>v;t#=pg3ay@N7cjcSs(^XaS zy|<@4epkKncj_I@RJr%7HSY-l0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!Cu15y(>~gg`w7n$e0* z^kNWsI*SmflR%MX9(AK%rzd+W0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U hAV7cs0RjXF5FkK+009C72oNAZfB*pk1PJ^YfjbN}DX0Jd diff --git a/skills/loki-mode/examples/todo-app-generated/backend/todos.db-wal b/skills/loki-mode/examples/todo-app-generated/backend/todos.db-wal deleted file mode 100644 index d770d188338b2faf33ed32efe199783bbccd28ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45352 zcmeI*KWGzC9Ki9*MeQHZxTTBw7O_=Z(xy%SNWru{wV3`fUeQ*H#^kKgB$pF*m)v{z9(kYKa=-WM zUGuqh=e64RRhqU@Qzd(9;$`=dEnjawOkUXk_=Y2^TubY}U447PxV(M%;DJ!wvBU{G zlZ-gRFMI2{wp$2!tS(<})n~4#{%huUU+CHuub>RR2{rS-B!-|$KE?2;P_0tg_0 z00IagfB*srAb#IV%-izU%G`8$r_$X0Rh< zh-JrCry@yfr|elX-r*|qdcCgm(fpW>9ka9fjb6|{UnQz5g^0&Qcdu#eHNv7l+}#rl z4~qT9pa>3_ecipXPmj@S?v%$laVKF3(>QF3-ah#n2!&L2%*sYH@w5}SQ~5?!7qye= zgymR^BX=2lf&(E_`0~veD->dy!S&V`+UxSkE9#nkE|j1? zQ4l}?0R#|0009ILKmY**5I|sM3aGVz_k12f-=pat(Odl!#06I7kIk$QKmY**5I_I{ z1Q0*~0R#|OCQz6!5P4F4?PALt6&G-M9%=HAf&c;tAbwZ8gVpWpN~wbi$@`2%$g%}qnUs+ZF$$QO9_?*7!| z?WwBSxWKgLnJ&4B^Mw#V009ILKmY**5I_I{1Q0;ruLR0nZf`~Y#s_kkf_#AwTE(5Q zKz2sO1$0kN<_pLT1px#QKmY**5I_I{1Q0*~0R;Y?K&M`&ZBz^+5I_I{1Q0*~0R#|0U{wkn zbeCy{TH4Thff6kY09^(CAy@M`VznKS9G zyW|V3%F~@mBY*$`2q1s}0tg_000IcC27$$V0d>zol`pXHoWk*Y$;~4dChm|guo_MT z=7<0S2q1s}0tg_000Iag@H>H0&ljlp)8`R1*4H)oTZiQQ3*rL9w|X9Yp1y9YxWN2< i2l+pO-<>72BY*$`2q1s}0tg_000IcCRDqQq7x)QXs<1Tx diff --git a/skills/spline-3d-integration/spline-3d-integration-skill (1).zip b/skills/spline-3d-integration/spline-3d-integration-skill (1).zip deleted file mode 100644 index c9cedcfeedfdd86ec966d80269994d966016d460..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21119 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 diff --git a/requirements.txt b/tools/requirements.txt similarity index 100% rename from requirements.txt rename to tools/requirements.txt diff --git a/tools/scripts/tests/jetski_gemini_loader.test.js b/tools/scripts/tests/jetski_gemini_loader.test.js index fc937fc2..ce9a8ac0 100644 --- a/tools/scripts/tests/jetski_gemini_loader.test.js +++ b/tools/scripts/tests/jetski_gemini_loader.test.js @@ -7,7 +7,8 @@ async function main() { const repoRoot = path.resolve(__dirname, "..", "..", ".."); const loaderPath = path.join( repoRoot, - "examples", + "docs", + "integrations", "jetski-gemini-loader", "loader.ts", );