agent-skill-kit 0.1.1__py3-none-any.whl
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.
- agent_skill_kit-0.1.1.dist-info/METADATA +355 -0
- agent_skill_kit-0.1.1.dist-info/RECORD +127 -0
- agent_skill_kit-0.1.1.dist-info/WHEEL +4 -0
- agent_skill_kit-0.1.1.dist-info/entry_points.txt +2 -0
- agents/__init__.py +1 -0
- agents/antigravity/adapter.py +97 -0
- agents/base.py +182 -0
- agents/claude/adapter.py +105 -0
- agents/codex/adapter.py +105 -0
- agents/cursor/adapter.py +109 -0
- agents/gemini/adapter.py +96 -0
- ask/__init__.py +4 -0
- ask/__main__.py +6 -0
- ask/cli.py +35 -0
- ask/commands/__init__.py +1 -0
- ask/commands/add_agent.py +146 -0
- ask/commands/copy.py +335 -0
- ask/commands/create.py +163 -0
- ask/commands/list_skills.py +54 -0
- ask/commands/remove.py +85 -0
- ask/commands/sync.py +102 -0
- ask/commands/update.py +184 -0
- ask/templates/skill/README.md +19 -0
- ask/templates/skill/skill.yaml +10 -0
- ask/utils/__init__.py +1 -0
- ask/utils/agent_registry.py +48 -0
- ask/utils/filesystem.py +83 -0
- ask/utils/skill_registry.py +112 -0
- ask/utils/validators.py +35 -0
- skills/coding/ask-bug-finder/README.md +171 -0
- skills/coding/ask-bug-finder/SKILL.md +176 -0
- skills/coding/ask-bug-finder/skill.yaml +15 -0
- skills/coding/ask-code-reviewer/README.md +72 -0
- skills/coding/ask-code-reviewer/SKILL.md +72 -0
- skills/coding/ask-code-reviewer/skill.yaml +15 -0
- skills/coding/ask-commit-assistance/README.md +21 -0
- skills/coding/ask-commit-assistance/SKILL.md +65 -0
- skills/coding/ask-commit-assistance/skill.yaml +15 -0
- skills/coding/ask-component-scaffolder/README.md +43 -0
- skills/coding/ask-component-scaffolder/SKILL.md +43 -0
- skills/coding/ask-component-scaffolder/scripts/scaffold_component.py +68 -0
- skills/coding/ask-component-scaffolder/skill.yaml +8 -0
- skills/coding/ask-db-migration-assistant/README.md +48 -0
- skills/coding/ask-db-migration-assistant/SKILL.md +48 -0
- skills/coding/ask-db-migration-assistant/skill.yaml +8 -0
- skills/coding/ask-docker-expert/README.md +44 -0
- skills/coding/ask-docker-expert/SKILL.md +45 -0
- skills/coding/ask-docker-expert/skill.yaml +14 -0
- skills/coding/ask-effective-llm-coder/README.md +27 -0
- skills/coding/ask-effective-llm-coder/SKILL.md +27 -0
- skills/coding/ask-effective-llm-coder/skill.yaml +8 -0
- skills/coding/ask-explaining-code/README.md +299 -0
- skills/coding/ask-explaining-code/SKILL.md +299 -0
- skills/coding/ask-explaining-code/skill.yaml +16 -0
- skills/coding/ask-fastapi-architect/README.md +60 -0
- skills/coding/ask-fastapi-architect/SKILL.md +61 -0
- skills/coding/ask-fastapi-architect/skill.yaml +14 -0
- skills/coding/ask-flutter-architect/README.md +85 -0
- skills/coding/ask-flutter-architect/SKILL.md +86 -0
- skills/coding/ask-flutter-architect/skill.yaml +14 -0
- skills/coding/ask-flutter-mechanic/README.md +55 -0
- skills/coding/ask-flutter-mechanic/SKILL.md +56 -0
- skills/coding/ask-flutter-mechanic/skill.yaml +15 -0
- skills/coding/ask-laravel-architect/README.md +61 -0
- skills/coding/ask-laravel-architect/SKILL.md +62 -0
- skills/coding/ask-laravel-architect/skill.yaml +16 -0
- skills/coding/ask-laravel-mechanic/README.md +94 -0
- skills/coding/ask-laravel-mechanic/SKILL.md +95 -0
- skills/coding/ask-laravel-mechanic/skill.yaml +16 -0
- skills/coding/ask-nextjs-architect/README.md +73 -0
- skills/coding/ask-nextjs-architect/SKILL.md +74 -0
- skills/coding/ask-nextjs-architect/skill.yaml +14 -0
- skills/coding/ask-owasp-security-review/README.md +211 -0
- skills/coding/ask-owasp-security-review/SKILL.md +216 -0
- skills/coding/ask-owasp-security-review/skill.yaml +16 -0
- skills/coding/ask-python-refactor/README.md +85 -0
- skills/coding/ask-python-refactor/SKILL.md +90 -0
- skills/coding/ask-python-refactor/skill.yaml +15 -0
- skills/coding/ask-readme-gardener/README.md +56 -0
- skills/coding/ask-readme-gardener/SKILL.md +56 -0
- skills/coding/ask-readme-gardener/skill.yaml +8 -0
- skills/coding/ask-refactoring-readability/README.md +167 -0
- skills/coding/ask-refactoring-readability/SKILL.md +172 -0
- skills/coding/ask-refactoring-readability/skill.yaml +15 -0
- skills/coding/ask-security-sentinel/README.md +17 -0
- skills/coding/ask-security-sentinel/SKILL.md +17 -0
- skills/coding/ask-security-sentinel/skill.yaml +8 -0
- skills/coding/ask-shadcn-architect/README.md +66 -0
- skills/coding/ask-shadcn-architect/SKILL.md +66 -0
- skills/coding/ask-shadcn-architect/skill.yaml +8 -0
- skills/coding/ask-unit-test-generation/README.md +187 -0
- skills/coding/ask-unit-test-generation/SKILL.md +187 -0
- skills/coding/ask-unit-test-generation/skill.yaml +16 -0
- skills/coding/ask-vue-architect/README.md +80 -0
- skills/coding/ask-vue-architect/SKILL.md +81 -0
- skills/coding/ask-vue-architect/skill.yaml +14 -0
- skills/coding/ask-vue-mechanic/README.md +59 -0
- skills/coding/ask-vue-mechanic/SKILL.md +60 -0
- skills/coding/ask-vue-mechanic/skill.yaml +15 -0
- skills/planning/ask-adr-logger/README.md +41 -0
- skills/planning/ask-adr-logger/SKILL.md +41 -0
- skills/planning/ask-adr-logger/scripts/create_adr.py +72 -0
- skills/planning/ask-adr-logger/skill.yaml +8 -0
- skills/planning/ask-brainstorm/README.md +45 -0
- skills/planning/ask-brainstorm/SKILL.md +45 -0
- skills/planning/ask-brainstorm/skill.yaml +8 -0
- skills/planning/ask-buildmaster/README.md +565 -0
- skills/planning/ask-buildmaster/SKILL.md +565 -0
- skills/planning/ask-buildmaster/skill.yaml +8 -0
- skills/planning/ask-project-memory/README.md +21 -0
- skills/planning/ask-project-memory/SKILL.md +21 -0
- skills/planning/ask-project-memory/skill.yaml +8 -0
- skills/tooling/ask-add-agent/README.md +175 -0
- skills/tooling/ask-add-agent/skill.yaml +15 -0
- skills/tooling/ask-pdf-processing/README.md +294 -0
- skills/tooling/ask-pdf-processing/reference/api_usage.md +288 -0
- skills/tooling/ask-pdf-processing/reference/form_mappings.yaml +151 -0
- skills/tooling/ask-pdf-processing/scripts/extract_text.py +126 -0
- skills/tooling/ask-pdf-processing/scripts/fill_form.py +185 -0
- skills/tooling/ask-pdf-processing/scripts/merge_pdfs.py +164 -0
- skills/tooling/ask-pdf-processing/skill.yaml +20 -0
- skills/tooling/ask-skill-capture/README.md +54 -0
- skills/tooling/ask-skill-capture/skill.yaml +14 -0
- skills/tooling/ask-skill-creator/README.md +253 -0
- skills/tooling/ask-skill-creator/SKILL.md +257 -0
- skills/tooling/ask-skill-creator/skill.yaml +15 -0
- skills/workflows/skill-creator/workflow.md +106 -0
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: agent-skill-kit
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Centralized skills repository and CLI toolkit for AI agents
|
|
5
|
+
Author: Nava
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Keywords: agents,ai,claude,cli,codex,gemini,skills
|
|
8
|
+
Classifier: Development Status :: 3 - Alpha
|
|
9
|
+
Classifier: Environment :: Console
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
18
|
+
Requires-Python: >=3.9
|
|
19
|
+
Requires-Dist: click>=8.0.0
|
|
20
|
+
Requires-Dist: pyyaml>=6.0
|
|
21
|
+
Requires-Dist: rich>=13.0.0
|
|
22
|
+
Provides-Extra: dev
|
|
23
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
24
|
+
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
|
|
27
|
+
# Agent Skill Kit (ASK)
|
|
28
|
+
|
|
29
|
+

|
|
30
|
+
|
|
31
|
+
**Agent Skill Kit (ASK)** is a CLI toolkit for managing, distributing, and syncing skills across multiple AI agents. It serves as a unified "package manager" for your AI's capabilities, allowing you to define a skill once and deploy it to **Gemini, Claude, Codex, Antigravity, Cursor**, and more.
|
|
32
|
+
|
|
33
|
+
## 🧠 Why Agent Skill Kit?
|
|
34
|
+
|
|
35
|
+
Managing instructions for multiple AI agents is tedious. You often have to:
|
|
36
|
+
* Copy `.cursorrules` to `.codex.md`.
|
|
37
|
+
* Manually sync `~/instructions.md` with project-specific prompts.
|
|
38
|
+
* Format skills differently for Gemini (`SKILL.md`) vs Claude (Slash Commands).
|
|
39
|
+
|
|
40
|
+
**ASK** solves this by treating skills as **reusable packages**.
|
|
41
|
+
1. **Define Once**: Write a skill in a standard format.
|
|
42
|
+
2. **Deploy Anywhere**: ASK transforms and copies the skill to the correct location and format for each agent.
|
|
43
|
+
3. **Sync**: Keep all your agents updated with a single command.
|
|
44
|
+
|
|
45
|
+
## 🚀 Features
|
|
46
|
+
|
|
47
|
+
- **Multi-Agent Support**: Native support for Gemini, Claude Code, OpenAI Codex, Antigravity, and Cursor.
|
|
48
|
+
- **Dynamic Discovery**: Automatically discovers available agents in the `agents/` directory.
|
|
49
|
+
- **Safe Copy**: Strictly adheres to "Do Not Overwrite". Prompts for a new name if a skill conflicts.
|
|
50
|
+
- **Local & Global**: Choose between **Project-Local** (specific to one repo) or **Global** (user-wide) deployment.
|
|
51
|
+
- **AI-Assisted Creation**: Includes meta-skills that teach your AI how to create new skills (`skill-creator`) or add new agents (`add-agent`).
|
|
52
|
+
- **Extensible**: Add support for any new AI agent in seconds via the `ask add-agent` wizard.
|
|
53
|
+
|
|
54
|
+
## 📦 Installation
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Clone the repository
|
|
58
|
+
git clone https://github.com/NavanithanS/Agent-Skill-Kit.git
|
|
59
|
+
cd Agent-Skill-Kit
|
|
60
|
+
|
|
61
|
+
# Install in editable mode
|
|
62
|
+
pip install -e .
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 🛠 Usage
|
|
66
|
+
|
|
67
|
+
### 1. Copy Skills to an Agent ⭐
|
|
68
|
+
**The primary way to use ASK** — Deploy skills to your AI agents using the interactive wizard.
|
|
69
|
+
|
|
70
|
+
**Interactive Mode** (Recommended):
|
|
71
|
+
```bash
|
|
72
|
+
ask copy
|
|
73
|
+
```
|
|
74
|
+
The wizard guides you through:
|
|
75
|
+
1. **Skill Selection**: Beautiful table showing all skills with descriptions and categories
|
|
76
|
+
2. **Agent Selection**: Compatible agents highlighted for your chosen skill
|
|
77
|
+
3. **Destination**: Choose between local (project) or global (user-wide) installation
|
|
78
|
+
|
|
79
|
+
**Quick Mode** (with flags):
|
|
80
|
+
```bash
|
|
81
|
+
# Copy specific skill
|
|
82
|
+
ask copy gemini --skill bug-finder
|
|
83
|
+
|
|
84
|
+
# Copy all compatible skills to an agent
|
|
85
|
+
ask copy claude --all
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 2. List Available Skills
|
|
89
|
+
View your library of skills, including descriptions and supported agents.
|
|
90
|
+
```bash
|
|
91
|
+
ask list
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 3. Create a New Skill
|
|
95
|
+
**AI-Assisted** (Recommended):
|
|
96
|
+
Simply ask your AI agent to create a skill for you:
|
|
97
|
+
```
|
|
98
|
+
Create a new skill for Docker best practices
|
|
99
|
+
|
|
100
|
+
Make a skill that teaches REST API design
|
|
101
|
+
|
|
102
|
+
create new skill: explaining-code
|
|
103
|
+
Purpose: Explains code using analogies, ASCII diagrams, and step-by-step walkthroughs. Triggered by queries like "How does this work?"
|
|
104
|
+
Instructions emphasize conversational tone, multiple analogies, and highlighting common misconceptions.
|
|
105
|
+
```
|
|
106
|
+
*Prerequisites: Deploy `ask-skill-creator` to your agent first (see [Tooling Skills](#tooling-skills-meta-skills)).*
|
|
107
|
+
|
|
108
|
+
**Manual CLI** (Alternative):
|
|
109
|
+
Launch the interactive wizard to generate a standardized skill template.
|
|
110
|
+
```bash
|
|
111
|
+
ask create skill
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 4. Sync All Skills
|
|
115
|
+
Synchronize your entire skill library to all supported agents at once.
|
|
116
|
+
```bash
|
|
117
|
+
ask sync all
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 5. Update Skills
|
|
121
|
+
Keep your installed skills up-to-date with the latest versions from the repository.
|
|
122
|
+
```bash
|
|
123
|
+
ask update
|
|
124
|
+
```
|
|
125
|
+
Features:
|
|
126
|
+
- **Version Checks**: Compares installed version vs source.
|
|
127
|
+
- **Interactive**: Select which skills to update (or use `--yes` to update all).
|
|
128
|
+
- **Safe**: Automatic backup (`SKILL.md.bak`) created before overwriting.
|
|
129
|
+
|
|
130
|
+
### 6. Add Support for New Agents
|
|
131
|
+
Want to use **Windsurf** or **Aider**? Use the scaffold wizard:
|
|
132
|
+
```bash
|
|
133
|
+
ask add-agent
|
|
134
|
+
```
|
|
135
|
+
This creates the necessary adapter code, making the new agent available instantly.
|
|
136
|
+
|
|
137
|
+
## 🎯 Supported Agents
|
|
138
|
+
|
|
139
|
+
| Agent | Local Path (Project) | Global Path (User) | Format |
|
|
140
|
+
|-------|----------------------|--------------------|--------|
|
|
141
|
+
| **Antigravity** | `.agent/skills/` | `~/.gemini/antigravity/skills/` | SKILL.md (YAML) |
|
|
142
|
+
| **Gemini CLI** | `.gemini/skills/` | `~/.gemini/skills/` | SKILL.md (YAML) |
|
|
143
|
+
| **Claude Code** | `.claude/commands/` | `~/.claude/commands/` | Markdown Command |
|
|
144
|
+
| **Codex** | `codex.md` | `~/.codex/instructions/` | Markdown |
|
|
145
|
+
| **Cursor** | `.cursor/rules/` | `~/.cursor/rules/` | Markdown Rules |
|
|
146
|
+
|
|
147
|
+
## � Available Skills
|
|
148
|
+
|
|
149
|
+
ASK comes with a curated collection of skills to boost your AI agent's capabilities. Each skill provides specialized instructions and best practices.
|
|
150
|
+
|
|
151
|
+
### Planning Skills
|
|
152
|
+
|
|
153
|
+
| Skill | Description | Use Cases |
|
|
154
|
+
|-------|-------------|-----------|
|
|
155
|
+
| **[adr-logger](skills/planning/ask-adr-logger/README.md)** | Automates creation of Architectural Decision Records | • Recording tech decisions<br>• Documenting context & consequences<br>• Maintaining decision history |
|
|
156
|
+
| **[brainstorm](skills/planning/ask-brainstorm/README.md)** | Guidelines for exploring user intent and requirements | • Defining user intent<br>• Gathering requirements<br>• Exploring design options |
|
|
157
|
+
| **[project-memory](skills/planning/ask-project-memory/README.md)** | Maintains a 'Project Brain' of decisions | • Avoiding re-discussions<br>• Checking past decisions<br>• Recording new choices |
|
|
158
|
+
| **[buildmaster](skills/planning/ask-buildmaster/README.md)** | Smart Epic Orchestration Agent | • Epic discovery & scoping<br>• Ticket decomposition<br>• Execution tracking & handoff |
|
|
159
|
+
|
|
160
|
+
### Coding Skills
|
|
161
|
+
|
|
162
|
+
| Skill | Description | Use Cases |
|
|
163
|
+
|-------|-------------|-----------|
|
|
164
|
+
| **[bug-finder](skills/coding/ask-bug-finder/README.md)** | Best practices for systematic bug hunting and debugging | • Debugging complex issues<br>• Isolating bugs<br>• Using debugging tools |
|
|
165
|
+
| **[code-reviewer](skills/coding/ask-code-reviewer/README.md)** | AI code reviewer providing constructive feedback | • Code quality checks<br>• Security & performance review<br>• Learning best practices |
|
|
166
|
+
| **[effective-llm-coder](skills/coding/ask-effective-llm-coder/README.md)** | Guides agent in declarative, simple, tenacious coding | • Declarative workflows<br>• Simplicity & tenacity<br>• Iterative refinement |
|
|
167
|
+
| **[commit-assistance](skills/coding/ask-commit-assistance/README.md)** | Assist with code review, staging, and committing | • Pre-commit review<br>• Meaningful commit messages<br>• Staging files |
|
|
168
|
+
| **[explaining-code](skills/coding/ask-explaining-code/README.md)** | Explains code using analogies and diagrams | • Understanding complex code<br>• Visualizing flow<br>• Learning new codebases |
|
|
169
|
+
| **[flutter-architect](skills/coding/ask-flutter-architect/README.md)** | Senior Flutter skill using FVM | • Layer-First Architecture<br>• Stream-based Services<br>• Strict coding conventions |
|
|
170
|
+
| **[flutter-mechanic](skills/coding/ask-flutter-mechanic/README.md)** | Maintenance skill for Flutter projects using FVM | • Clean Build Protocol<br>• iOS/Android fixes<br>• Release protocols |
|
|
171
|
+
| **[laravel-architect](skills/coding/ask-laravel-architect/README.md)** | Senior scaffolding skill for Laravel (SQL/Mongo) | • Logic Layer separation<br>• Hybrid SQL/Mongo Relations<br>• Test-Driven Scaffolding |
|
|
172
|
+
| **[laravel-mechanic](skills/coding/ask-laravel-mechanic/README.md)** | Senior maintenance skill for database safety | • Zero Data Loss protocol<br>• N+1 Query prevention<br>• Queue debugging & forensics |
|
|
173
|
+
| **[owasp-security-review](skills/coding/ask-owasp-security-review/README.md)** | Static code analysis aligned with OWASP Top 10 | • Security scanning<br>• Identifying vulnerabilities<br>• Compliance checks |
|
|
174
|
+
| **[python-refactor](skills/coding/ask-python-refactor/README.md)** | Guidelines for Python code refactoring | • Improving code quality<br>• Refactoring legacy code<br>• Python best practices |
|
|
175
|
+
| **[refactoring-readability](skills/coding/ask-refactoring-readability/README.md)** | Improves code structure for clarity | • Renaming vars/functions<br>• Reducing complexity<br>• Improving readability |
|
|
176
|
+
| **[unit-test-generation](skills/coding/ask-unit-test-generation/README.md)** | Automates creation of comprehensive unit tests | • Generating new tests<br>• Covering edge cases<br>• Improving coverage |
|
|
177
|
+
| **[vue-architect](skills/coding/ask-vue-architect/README.md)** | Expert scaffolding for Vue 3 (Inertia/Nuxt) | • Component blueprints<br>• Stack detection<br>• Best practices enforcement |
|
|
178
|
+
| **[vue-mechanic](skills/coding/ask-vue-mechanic/README.md)** | Expert maintenance skill for Vue 3 (Inertia) | • Fixing navigation reloads<br>• Debugging prop mismatches<br>• Solving reactivity issues |
|
|
179
|
+
| **[component-scaffolder](skills/coding/ask-component-scaffolder/README.md)** | Standardizes UI component creation | • Consistent folder structure<br>• Typed props<br>• Auto-generating tests |
|
|
180
|
+
| **[db-migration-assistant](skills/coding/ask-db-migration-assistant/README.md)** | Ensures safe database schema updates | • Drafting migrations<br>• Creating rollback scripts<br>• Preventing data loss |
|
|
181
|
+
| **[readme-gardener](skills/coding/ask-readme-gardener/README.md)** | Keeps documentation in sync with code | • Updating API docs<br>• Documenting new features<br>• Maintaining README accuracy |
|
|
182
|
+
| **[shadcn-architect](skills/coding/ask-shadcn-architect/README.md)** | Enforces shadcn/ui patterns and consistency | • Preventing style bloat<br>• Enforcing import rules<br>• Promoting accessibility |
|
|
183
|
+
| **[security-sentinel](skills/coding/ask-security-sentinel/README.md)** | Pre-flight security checker for secrets/vulns | • Blocking commits with secrets<br>• Detecting SQL injection<br>• Flagging unsafe Blade usage |
|
|
184
|
+
| **[nextjs-architect](skills/coding/ask-nextjs-architect/README.md)** | Expert scaffolding for Next.js 14+ (App Router) | • Server Components<br>• Server Actions<br>• Metadata API |
|
|
185
|
+
| **[fastapi-architect](skills/coding/ask-fastapi-architect/README.md)** | Expert scaffolding for FastAPI projects | • Pydantic V2<br>• Async SQLAlchemy<br>• Dep Injection |
|
|
186
|
+
| **[docker-expert](skills/coding/ask-docker-expert/README.md)** | Expert guidance on Docker & Containers | • Multi-stage builds<br>• Security best practices<br>• Image optimization |
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
### Tooling Skills (Meta-Skills)
|
|
191
|
+
|
|
192
|
+
#### 🛠️ ask-skill-creator
|
|
193
|
+
**Description**: Teaches AI agents how to create skills for Agent Skill Kit
|
|
194
|
+
|
|
195
|
+
**How to Use**:
|
|
196
|
+
```bash
|
|
197
|
+
# Deploy to all agents so they can create skills
|
|
198
|
+
ask sync all
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**Use Cases**:
|
|
202
|
+
- **AI-Assisted Skill Creation**: Let your AI agent create new skills by simply asking
|
|
203
|
+
```
|
|
204
|
+
"Create a skill for API design best practices"
|
|
205
|
+
```
|
|
206
|
+
- Standardizing skill structure and format
|
|
207
|
+
- Automating skill scaffolding
|
|
208
|
+
- Building your custom skill library
|
|
209
|
+
- Teaching AI agents the skill creation workflow
|
|
210
|
+
|
|
211
|
+
**Example Workflow**:
|
|
212
|
+
1. Deploy this skill to your agent: `ask copy gemini --skill ask-skill-creator`
|
|
213
|
+
2. Ask your agent: "Create a skill called 'ask-docker-best-practices' for containerization guidelines"
|
|
214
|
+
3. The agent generates the skill files automatically
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
#### 🎯 ask-add-agent
|
|
219
|
+
**Description**: How to add support for new AI code editors to Agent Skill Kit
|
|
220
|
+
|
|
221
|
+
**How to Use**:
|
|
222
|
+
```bash
|
|
223
|
+
# Deploy to help your agent add new editor support
|
|
224
|
+
ask copy antigravity --skill ask-add-agent
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**Use Cases**:
|
|
228
|
+
- **Extending ASK**: Add support for new AI editors (Windsurf, Aider, etc.)
|
|
229
|
+
- Creating custom agent adapters
|
|
230
|
+
- Understanding the agent adapter architecture
|
|
231
|
+
- Contributing new agent support to the project
|
|
232
|
+
|
|
233
|
+
**Example Workflow**:
|
|
234
|
+
1. Deploy this skill to your agent
|
|
235
|
+
2. Run the wizard: `ask add-agent`
|
|
236
|
+
3. Or ask your agent to help: "Add support for Windsurf editor"
|
|
237
|
+
4. The agent follows the documented process to create the adapter
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
#### 📄 ask-pdf-processing
|
|
242
|
+
**Description**: Handle PDF text extraction, form filling, and merging
|
|
243
|
+
|
|
244
|
+
**How to Use**:
|
|
245
|
+
```bash
|
|
246
|
+
ask copy antigravity --skill ask-pdf-processing
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**Use Cases**:
|
|
250
|
+
- Extracting text from PDF documents
|
|
251
|
+
- Processing PDF forms
|
|
252
|
+
- Merging multiple PDFs
|
|
253
|
+
- PDF automation workflows
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
#### 🧠 ask-skill-capture
|
|
258
|
+
**Description**: Meta-skill. Analyzes the current session's lessons and saves them as a permanent reusable skill.
|
|
259
|
+
|
|
260
|
+
**How to Use**:
|
|
261
|
+
```bash
|
|
262
|
+
# Deploy to your agent (e.g., Antigravity, Gemini)
|
|
263
|
+
ask copy antigravity --skill ask-skill-capture
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**Use Cases**:
|
|
267
|
+
- **Chat-to-Code**: Turn "messy" chat context into a structured skill
|
|
268
|
+
- **Constraint Capture**: Permanently save rules like "Always use FVM" or "Don't use Tailwind"
|
|
269
|
+
- **Workflow Automation**: Save a successful debugging sequence as a reusable protocol
|
|
270
|
+
- **Team Scaling**: Share tacit knowledge with your team via git-committed skills
|
|
271
|
+
|
|
272
|
+
**Example Workflow**:
|
|
273
|
+
1. You struggle through a task and finally get it right
|
|
274
|
+
2. You say: "Capture this as a skill called 'ask-deployment-protocol'"
|
|
275
|
+
3. The agent analyzes the conversation and generates the `SKILL.md`
|
|
276
|
+
4. You verify and save it
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
### 🚀 Quick Start with Skills
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
# View all available skills
|
|
284
|
+
ask list
|
|
285
|
+
|
|
286
|
+
# Deploy a specific skill to an agent
|
|
287
|
+
ask copy gemini --skill ask-bug-finder
|
|
288
|
+
|
|
289
|
+
# Deploy all compatible skills to an agent
|
|
290
|
+
ask copy claude --all
|
|
291
|
+
|
|
292
|
+
# Sync all skills to all agents
|
|
293
|
+
ask sync all
|
|
294
|
+
|
|
295
|
+
# Create your own skill (interactive)
|
|
296
|
+
ask create skill
|
|
297
|
+
|
|
298
|
+
# Or ask your AI agent to create one (if skill-creator is deployed)
|
|
299
|
+
"Create a new skill for API testing best practices"
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
## �📐 Skill Format
|
|
303
|
+
|
|
304
|
+
Each skill is a directory containing:
|
|
305
|
+
* **`skill.yaml`**: Metadata (name, description, tags, supported agents).
|
|
306
|
+
* **`README.md`**: The actual prompt/instructions for the AI.
|
|
307
|
+
|
|
308
|
+
> [!IMPORTANT]
|
|
309
|
+
> **Naming Convention**: All skill names must start with the `ask-` prefix (e.g., `ask-bug-finder`, `ask-commit-assistance`).
|
|
310
|
+
|
|
311
|
+
```yaml
|
|
312
|
+
# skill.yaml
|
|
313
|
+
name: ask-bug-finder
|
|
314
|
+
version: 1.0.0
|
|
315
|
+
category: coding
|
|
316
|
+
agents:
|
|
317
|
+
- gemini
|
|
318
|
+
- claude
|
|
319
|
+
- cursor
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
## 🧩 Design Principles
|
|
323
|
+
|
|
324
|
+
1. **Universal Definition**: Skills are defined in a neutral format that can be adapted to any agent.
|
|
325
|
+
2. **Local-First, Global-Ready**: Prioritize project-specific skills (checked into git) while supporting user-wide global skills.
|
|
326
|
+
3. **Safe by Default**: The CLI will **never** silently overwrite an existing skill. It always asks.
|
|
327
|
+
4. **Agentic Workflow**: The toolkit includes skills (`skill-creator`) specifically designed to help AI agents help *you* build more skills.
|
|
328
|
+
|
|
329
|
+
## 🗂 Repository Structure
|
|
330
|
+
|
|
331
|
+
```
|
|
332
|
+
agent-skill-kit/
|
|
333
|
+
├── ask/ # CLI Source Code
|
|
334
|
+
│ ├── commands/ # logic for create, copy, sync, add-agent
|
|
335
|
+
│ └── utils/ # adapter logic, filesystem helpers
|
|
336
|
+
├── agents/ # Adapters for each AI agent
|
|
337
|
+
│ ├── gemini/
|
|
338
|
+
│ ├── claude/
|
|
339
|
+
│ ├── codex/
|
|
340
|
+
│ ├── antigravity/
|
|
341
|
+
│ └── cursor/ # (Added via ask add-agent)
|
|
342
|
+
└── skills/ # The Skill Library
|
|
343
|
+
├── coding/
|
|
344
|
+
└── tooling/
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
## 🤝 Contributing
|
|
348
|
+
|
|
349
|
+
Contributions are welcome!
|
|
350
|
+
1. **Create a Skill**: Use `ask create skill` and submit a PR with your best prompts.
|
|
351
|
+
2. **Add an Agent**: Use `ask add-agent`, test it, and submit the new adapter.
|
|
352
|
+
|
|
353
|
+
## License
|
|
354
|
+
|
|
355
|
+
MIT
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
agents/__init__.py,sha256=yjvBIa9akGNT4AbiwOW5uhWav1ngk_n-p7R_8MU2r1w,45
|
|
2
|
+
agents/base.py,sha256=crK8bMJ-GfGe-U-ohmgCw34NdfL8K_qlgaVxXEuiPTg,6815
|
|
3
|
+
agents/antigravity/adapter.py,sha256=XYEDwzc-tYC5YiQawJ8Pc9odaoa8SoPC0jF_WzYN_sg,3248
|
|
4
|
+
agents/claude/adapter.py,sha256=BztTKg1uLTPzVOL4tGsVHMimFSdtEXj3qTWTUkvjqFI,4016
|
|
5
|
+
agents/codex/adapter.py,sha256=TjYC9GVthLes3sNSx5uwv9UVhwm5W1WEWZBheDC6wFc,3761
|
|
6
|
+
agents/cursor/adapter.py,sha256=DoHbjdJp2nELzoKcCdtZnQ0-dFG8_S83MoQaAbFKAPg,3696
|
|
7
|
+
agents/gemini/adapter.py,sha256=PGwP-3UrOt6FZtFscro-fezOZ6dAir2TO_HSkrVaiWk,3180
|
|
8
|
+
ask/__init__.py,sha256=XUr7fxXfOW4CN6zDJ8k_Pv9JFdF50vVxXNTqvVtwU94,109
|
|
9
|
+
ask/__main__.py,sha256=GPEM4anOHyTIaedv5rXQIFUhfnohURTYRpAoOTOfXZE,102
|
|
10
|
+
ask/cli.py,sha256=FvJD5s8amG5WLeJLI17nKnThzQuCjD3swwZ5rthB0Rg,814
|
|
11
|
+
ask/commands/__init__.py,sha256=bDribyfKLiuaGKmXomxN6JNHBwZMCkARuHF0jgNESiI,40
|
|
12
|
+
ask/commands/add_agent.py,sha256=vtP-xPXEVtFIjTG8j8cwLa6xsDMMYOxW-DPMWPJK65Y,5053
|
|
13
|
+
ask/commands/copy.py,sha256=FIIZPncb-7ZyB2V15jONPKGNJNWt7HZgx6CAGo3V8Sk,12362
|
|
14
|
+
ask/commands/create.py,sha256=FeX82F51zSc--reIaRHsBwhc_wvmZ5-K86moWPDUDWo,4839
|
|
15
|
+
ask/commands/list_skills.py,sha256=bPwxM0MwrpajhpibcQd3CfkgQkjMniU_tyr4N7x_Qdw,1791
|
|
16
|
+
ask/commands/remove.py,sha256=F9DixGnKsrGh5khavA7YC7s0fBayMtvv2GLOY8RUmVI,3427
|
|
17
|
+
ask/commands/sync.py,sha256=HMNwBi_B_T6DM19eZnTuthXewPpUcC7krUuu3QIwWUE,3231
|
|
18
|
+
ask/commands/update.py,sha256=bXdE7ii6LpB0c8_ZEm7zOkBsx1BW811C7iIfsru_h-4,6616
|
|
19
|
+
ask/templates/skill/README.md,sha256=eAq6NRfBvm_ANUVAxexiemAvk4FpPwrL0SuC8f-Sf6M,252
|
|
20
|
+
ask/templates/skill/skill.yaml,sha256=kgQpzDDE5BrAYbbf7dlUQiZ4BGtxZTV290-HAwy0xos,161
|
|
21
|
+
ask/utils/__init__.py,sha256=CFI2eC8zdD42YVfh4219amy-E2p4aHVPOYy7OI5iCDU,45
|
|
22
|
+
ask/utils/agent_registry.py,sha256=GmGXMQ-cJ7H6OpSiOHOkAJrI4ZS4P_2REetsR6ffHgA,1404
|
|
23
|
+
ask/utils/filesystem.py,sha256=jiq7xyrMmRbLsawCvPQUalrWi_UNRSIV5Pl8TR69Li0,2742
|
|
24
|
+
ask/utils/skill_registry.py,sha256=49tJ2hwt-hKwr5y8jZ27RP-fU0TpCuLtjz1yRMxYXIA,3736
|
|
25
|
+
ask/utils/validators.py,sha256=mKR8A6-c8pKuk6gBxuJxAlEkXIw6klrNY__A1AMdy0I,862
|
|
26
|
+
skills/coding/ask-bug-finder/README.md,sha256=9fxGvrs5RRzEY2OBmeSxV2BzDbv6dK6Pig2Cye0bmCU,4270
|
|
27
|
+
skills/coding/ask-bug-finder/SKILL.md,sha256=rJPA3WQGaAhZs3cgi3lvRwR4sZ_k-zf0mh85wln4QuE,4369
|
|
28
|
+
skills/coding/ask-bug-finder/skill.yaml,sha256=NcOukD1IDBT-e2rRrubWkZWt9-rFsKTIyWUbD8P_S2g,263
|
|
29
|
+
skills/coding/ask-code-reviewer/README.md,sha256=yM778R59iJBif71o9wkSQroJCnpZqfHHMr1WM0D4xMA,3257
|
|
30
|
+
skills/coding/ask-code-reviewer/SKILL.md,sha256=yM778R59iJBif71o9wkSQroJCnpZqfHHMr1WM0D4xMA,3257
|
|
31
|
+
skills/coding/ask-code-reviewer/skill.yaml,sha256=zsrPj9rRtIVeAKqct2erBSgdyDtkJIKm0hwqga9xU4Q,280
|
|
32
|
+
skills/coding/ask-commit-assistance/README.md,sha256=aTFKL6WgmD2VTOCfZS9R2xPtr26Y0sl6wklQp60doRI,809
|
|
33
|
+
skills/coding/ask-commit-assistance/SKILL.md,sha256=bpAe4KIBY3ij3bXWs8fq3co3WbMH_nUHZc4LiRuz0kQ,2583
|
|
34
|
+
skills/coding/ask-commit-assistance/skill.yaml,sha256=CI-nlz44Z4Iv7ZHeSLtTDVb5KfHyRv8vb2Jxx2DXV4A,252
|
|
35
|
+
skills/coding/ask-component-scaffolder/README.md,sha256=l0PknyeVlsGJGEUp8LulPIgmGhZ6QlIGBRBY-jopQSU,1198
|
|
36
|
+
skills/coding/ask-component-scaffolder/SKILL.md,sha256=l0PknyeVlsGJGEUp8LulPIgmGhZ6QlIGBRBY-jopQSU,1198
|
|
37
|
+
skills/coding/ask-component-scaffolder/skill.yaml,sha256=2nF4H-zj3bfW2jM6JUEk2MOb3AlVG99s7KK_oY6BHR0,120
|
|
38
|
+
skills/coding/ask-component-scaffolder/scripts/scaffold_component.py,sha256=Gngf4tUr28yEXYXQ14RUfBjFJ-nouaxFwsYMECuw_5E,1937
|
|
39
|
+
skills/coding/ask-db-migration-assistant/README.md,sha256=Q9bYXEDWDBcUWRpRSuGLrrG_0ITZxx5Z0j0gbjZ8qf4,1638
|
|
40
|
+
skills/coding/ask-db-migration-assistant/SKILL.md,sha256=Q9bYXEDWDBcUWRpRSuGLrrG_0ITZxx5Z0j0gbjZ8qf4,1638
|
|
41
|
+
skills/coding/ask-db-migration-assistant/skill.yaml,sha256=3MFcylOe_3h9xc27T2dZIBbQj-IAP7WIlCqm8rNGuK8,122
|
|
42
|
+
skills/coding/ask-docker-expert/README.md,sha256=n-Z7ypn7MwuhfgJ1-RLYPQVegHrDYZH5-Attqzdisc4,1784
|
|
43
|
+
skills/coding/ask-docker-expert/SKILL.md,sha256=1PZ4Y1dTD3tojyfKHdVCeORiXwirER5uDMdw2DxWi8Y,1790
|
|
44
|
+
skills/coding/ask-docker-expert/skill.yaml,sha256=FO2ASMVCA8Oi0wU83AmgRHMKoP_OlTWy0SESdZeRiLU,303
|
|
45
|
+
skills/coding/ask-effective-llm-coder/README.md,sha256=QHPmgrBjinjXKiqAPou-12O6YE_c2M7wEgjgzuIT3gc,2050
|
|
46
|
+
skills/coding/ask-effective-llm-coder/SKILL.md,sha256=QHPmgrBjinjXKiqAPou-12O6YE_c2M7wEgjgzuIT3gc,2050
|
|
47
|
+
skills/coding/ask-effective-llm-coder/skill.yaml,sha256=FoWqhQXnaX7HyvDLFvRVQY_ApZ6RT3voeRDGGtNP7w8,119
|
|
48
|
+
skills/coding/ask-explaining-code/README.md,sha256=CG370y0RhYhR1PIWt_Ri66LBeZUT-K0-e-ru8DGXbLQ,9876
|
|
49
|
+
skills/coding/ask-explaining-code/SKILL.md,sha256=CG370y0RhYhR1PIWt_Ri66LBeZUT-K0-e-ru8DGXbLQ,9876
|
|
50
|
+
skills/coding/ask-explaining-code/skill.yaml,sha256=QAKMZWb66MWMMrjGjlE9mgAyCt7syBE7OUQKGN2wr-A,300
|
|
51
|
+
skills/coding/ask-fastapi-architect/README.md,sha256=iQktrKWc-62SswmWXgE7fQIIJJ07wMRBvnMclZKM71w,1904
|
|
52
|
+
skills/coding/ask-fastapi-architect/SKILL.md,sha256=iWI7vilDws-0Ii6bEacY1a5xK1tRQuvgx98O8Lm-MF8,1914
|
|
53
|
+
skills/coding/ask-fastapi-architect/skill.yaml,sha256=vrWjKQmvwSRwTAXUtvfuvpW0uvDZHFPgodjZYEJNaLo,301
|
|
54
|
+
skills/coding/ask-flutter-architect/README.md,sha256=xAYbT6Ufkg2B5EfkDIl_2YjT7XTOWVCKvcUPgcbpQ7w,3717
|
|
55
|
+
skills/coding/ask-flutter-architect/SKILL.md,sha256=Y9gftZSX3Pkz6x4X9EfhB2xTgsQe1Ki3_thlsU0_GUg,3741
|
|
56
|
+
skills/coding/ask-flutter-architect/skill.yaml,sha256=FaRvwJGp7jp4Y4mLYSIkf-EDP9ZIIGYDKPNvMiYt3vw,341
|
|
57
|
+
skills/coding/ask-flutter-mechanic/README.md,sha256=XD38q4PNstPWP8kR8FGNPojLPLQvsHv77mY7oOC0l1w,2325
|
|
58
|
+
skills/coding/ask-flutter-mechanic/SKILL.md,sha256=NyGVnrTaHn-SMsnUHfdnQRlmOIpVpPNs801TYpArpUA,2349
|
|
59
|
+
skills/coding/ask-flutter-mechanic/skill.yaml,sha256=9TsOBU_lAuXI_lPe-Iir2YgIZncduFFcGYi_RerUjKw,332
|
|
60
|
+
skills/coding/ask-laravel-architect/README.md,sha256=yVThKmik8pBQRLW87Kkr7DWqARLFefV478qho0OKPsk,3114
|
|
61
|
+
skills/coding/ask-laravel-architect/SKILL.md,sha256=1WeZPRqex0j84_ryAr9qPdWISEzvfcLFOLMOZr_3dfY,3142
|
|
62
|
+
skills/coding/ask-laravel-architect/skill.yaml,sha256=Ck4JJmOmSpJuW3QnDNFLb9fgO-t6MrV4B1eN4UMY1gM,312
|
|
63
|
+
skills/coding/ask-laravel-mechanic/README.md,sha256=o0ITf86qeltpHOfDDGY4-rOQwcEp7qshOKR7EZzm5QY,3825
|
|
64
|
+
skills/coding/ask-laravel-mechanic/SKILL.md,sha256=ALh_nfgH4PuNmvYdPcrJkvGeqr4Cu_nG3gqFdr4Fqlk,3853
|
|
65
|
+
skills/coding/ask-laravel-mechanic/skill.yaml,sha256=YL7E4l4e7744Yi0ld3DSAbVex6C_lB7HdzdyXnEQOvc,301
|
|
66
|
+
skills/coding/ask-nextjs-architect/README.md,sha256=axVGwyrs7TKZa6DlpkwbXVzqwbHkzDsVHNfES7XuVh4,2717
|
|
67
|
+
skills/coding/ask-nextjs-architect/SKILL.md,sha256=haT5Huqzdoe4A7giGymXbh0xC159iDJLXb5BfmkfMFE,2716
|
|
68
|
+
skills/coding/ask-nextjs-architect/skill.yaml,sha256=U63Gs7_UGXYdzLFWBATNtlSn0pt4x0YlhPgOfURHpqg,301
|
|
69
|
+
skills/coding/ask-owasp-security-review/README.md,sha256=zxHOOJxxZ4_xFaNhQKzoreGMC-TLsDUonrEhZMgI9DQ,8360
|
|
70
|
+
skills/coding/ask-owasp-security-review/SKILL.md,sha256=2L9Y-89YBeelCpySNMVXNwpl5XRnbfFggkdL6IT0jrM,8573
|
|
71
|
+
skills/coding/ask-owasp-security-review/skill.yaml,sha256=A7WG-k3OAPE7oeTSl2LY_cJGMJRZuVqNbyMcJX-J0E4,389
|
|
72
|
+
skills/coding/ask-python-refactor/README.md,sha256=zcw3vQSskCLDr_m93IUaULf07iGJ_cfNBkjFc7UoT_U,2257
|
|
73
|
+
skills/coding/ask-python-refactor/SKILL.md,sha256=y3U8fNFajeCNsn5S-HYgOdxsWCfp0zLUy_BQt9o44Bg,2363
|
|
74
|
+
skills/coding/ask-python-refactor/skill.yaml,sha256=u8Mf0AfiwjvlmafVKh-_17Zy4pbPBhKl4yHUZZvrL9s,263
|
|
75
|
+
skills/coding/ask-readme-gardener/README.md,sha256=4tR_z0ymiDLU5WMTcWpjlS-v3f-C8sij2fqKgOY-eiw,1655
|
|
76
|
+
skills/coding/ask-readme-gardener/SKILL.md,sha256=4tR_z0ymiDLU5WMTcWpjlS-v3f-C8sij2fqKgOY-eiw,1655
|
|
77
|
+
skills/coding/ask-readme-gardener/skill.yaml,sha256=_s9flSxILl9KgUsu5g1dEt8JxhNrTSAQlOpESpVYT5Y,115
|
|
78
|
+
skills/coding/ask-refactoring-readability/README.md,sha256=M-daKM0h4FhHHYQj9t-mYH2W1kaFvw-ZWzenfRr2bdI,5758
|
|
79
|
+
skills/coding/ask-refactoring-readability/SKILL.md,sha256=ebW9udF1Sht_geTg2BgsTG_26uygKwOvtmaP62MDeR0,5917
|
|
80
|
+
skills/coding/ask-refactoring-readability/skill.yaml,sha256=9c5vH7UEX_FtQDJkb7RoZFh4NieyZ8PeYjD25Iiqw-4,334
|
|
81
|
+
skills/coding/ask-security-sentinel/README.md,sha256=SywW8n2MwW9d4D-FbXLajhy0X3w-YWpOvelH6wttuxY,731
|
|
82
|
+
skills/coding/ask-security-sentinel/SKILL.md,sha256=SywW8n2MwW9d4D-FbXLajhy0X3w-YWpOvelH6wttuxY,731
|
|
83
|
+
skills/coding/ask-security-sentinel/skill.yaml,sha256=xGOHaVnBUFbJ6qiT-QJCQucKeIN0uxbPGLF7QXQXP6o,117
|
|
84
|
+
skills/coding/ask-shadcn-architect/README.md,sha256=ofIJeoIvHUUa12sgSBP7o1OFwVI4YXSVmK_3hUkfi2E,2516
|
|
85
|
+
skills/coding/ask-shadcn-architect/SKILL.md,sha256=ofIJeoIvHUUa12sgSBP7o1OFwVI4YXSVmK_3hUkfi2E,2516
|
|
86
|
+
skills/coding/ask-shadcn-architect/skill.yaml,sha256=ksgsgQ3ElH0uU6bffD5Mvpw5k1lRt2PnaOsEP9ZEqQs,116
|
|
87
|
+
skills/coding/ask-unit-test-generation/README.md,sha256=xcXbmmO3EWNDMkVw7eJlu4Sm8-VFs2EmbIxMxCfh7lI,7284
|
|
88
|
+
skills/coding/ask-unit-test-generation/SKILL.md,sha256=xcXbmmO3EWNDMkVw7eJlu4Sm8-VFs2EmbIxMxCfh7lI,7284
|
|
89
|
+
skills/coding/ask-unit-test-generation/skill.yaml,sha256=QypBo8DgERsBK3t5RA3oVwWhLMLXiQHmW3rBELPifDc,339
|
|
90
|
+
skills/coding/ask-vue-architect/README.md,sha256=V2VFo-3Gpk1SvfgP3re_Rgybqe7__m16BjbuJvgJJbA,3154
|
|
91
|
+
skills/coding/ask-vue-architect/SKILL.md,sha256=aDqOgiIM0VicmaOAmcZsygtmJ3qnvl3bEX2XqIg4FUk,3178
|
|
92
|
+
skills/coding/ask-vue-architect/skill.yaml,sha256=mfYsX28T-AzpQZ_mvm2wjrPIddFj6TZrOK7JfeaigTg,312
|
|
93
|
+
skills/coding/ask-vue-mechanic/README.md,sha256=sa4ClvjQH1apS9In4m0FwZ--RX_S5JrtVOX-QCLu5co,2940
|
|
94
|
+
skills/coding/ask-vue-mechanic/SKILL.md,sha256=b1732uF86_YbgI7SwRT-DOAsQTvdqHr6C0COl_S_h74,2964
|
|
95
|
+
skills/coding/ask-vue-mechanic/skill.yaml,sha256=oIy_LYl28veOOY1v9-ZttrmzMrPuFjo3g5xMzIoPFIM,318
|
|
96
|
+
skills/planning/ask-adr-logger/README.md,sha256=-IBBBhyLhZc6kd7eVf_3ddKVxAI9AgBpLD4RUACzupo,1351
|
|
97
|
+
skills/planning/ask-adr-logger/SKILL.md,sha256=-IBBBhyLhZc6kd7eVf_3ddKVxAI9AgBpLD4RUACzupo,1351
|
|
98
|
+
skills/planning/ask-adr-logger/skill.yaml,sha256=9cL-DQRpb4tAPIVeWE2y4_dVZR3DVmQ94DMbnDoj_oE,112
|
|
99
|
+
skills/planning/ask-adr-logger/scripts/create_adr.py,sha256=1yebVHxcfnf0go2hyNXTrnqoup1NN7XSZopzrseigvQ,2065
|
|
100
|
+
skills/planning/ask-brainstorm/README.md,sha256=Xq6FL-htaFdm9Klphuo6-qmuNpO-DvOtaHuVbtD5G-A,1828
|
|
101
|
+
skills/planning/ask-brainstorm/SKILL.md,sha256=Xq6FL-htaFdm9Klphuo6-qmuNpO-DvOtaHuVbtD5G-A,1828
|
|
102
|
+
skills/planning/ask-brainstorm/skill.yaml,sha256=Ln7ewBQrXuB_BeBooFgRZxP98INQmaXM92ktq_tuNQY,112
|
|
103
|
+
skills/planning/ask-buildmaster/README.md,sha256=hCg9hW2c2OJ3YAMWX8Xl0lpQ9bo9vjOqzHgfteqRhMY,13877
|
|
104
|
+
skills/planning/ask-buildmaster/SKILL.md,sha256=hCg9hW2c2OJ3YAMWX8Xl0lpQ9bo9vjOqzHgfteqRhMY,13877
|
|
105
|
+
skills/planning/ask-buildmaster/skill.yaml,sha256=6zcTCdBS7OPvVPOwcV5s1U8ZbSPvvJnf1XbKvDd5zyQ,113
|
|
106
|
+
skills/planning/ask-project-memory/README.md,sha256=M8HKSzQ77Qz351kFZDh-vzVfD9NqJinlEnKkQIVinYM,805
|
|
107
|
+
skills/planning/ask-project-memory/SKILL.md,sha256=M8HKSzQ77Qz351kFZDh-vzVfD9NqJinlEnKkQIVinYM,805
|
|
108
|
+
skills/planning/ask-project-memory/skill.yaml,sha256=OLP-uMHlnrbyd3SJIGSZox-c7YILOqzjH5F7fzF6SyI,116
|
|
109
|
+
skills/tooling/ask-add-agent/README.md,sha256=gW9rEfrhch3bzNHQx_BC9WqqOe1zplLjaiVT5B_VHM4,4720
|
|
110
|
+
skills/tooling/ask-add-agent/skill.yaml,sha256=wV60xW2dFvVD98Vxa2RzMkRuVC0He4uO5GEjLgyEbF8,252
|
|
111
|
+
skills/tooling/ask-pdf-processing/README.md,sha256=vOw7Qu5QlMgpai9gtimLI2b3c4ZPHsb_H-qhKorC0so,6907
|
|
112
|
+
skills/tooling/ask-pdf-processing/skill.yaml,sha256=cvUQ-HveWXnKyfMsYL73E7iFAiUTWZ13CQI8HnAH76g,339
|
|
113
|
+
skills/tooling/ask-pdf-processing/reference/api_usage.md,sha256=1fUZsBCbVDxprGdVq9-Zs5MY6i2j1v24QTTEIsfbQdY,5997
|
|
114
|
+
skills/tooling/ask-pdf-processing/reference/form_mappings.yaml,sha256=nGGPAo3tFd1foBXYJVvMrqN934J-XmGOJZegaqqnujA,2938
|
|
115
|
+
skills/tooling/ask-pdf-processing/scripts/extract_text.py,sha256=_a662WZ5XQQdmA1SpOg5I04KzIuuLBFAO7rjiDDX89M,3401
|
|
116
|
+
skills/tooling/ask-pdf-processing/scripts/fill_form.py,sha256=gmuTetJ7cIsiTuJDBfvwDptVEJPFcCrJnkqUeRD_a70,5215
|
|
117
|
+
skills/tooling/ask-pdf-processing/scripts/merge_pdfs.py,sha256=lS-9s4GV0lNBRBcy-RqJk_kxznPhg6r5QPCAWJ7CyUI,4261
|
|
118
|
+
skills/tooling/ask-skill-capture/README.md,sha256=DL0vPlYKNPBKtP3Eo2wyb9-A9X2bDb4M74uvWgGuwA8,1821
|
|
119
|
+
skills/tooling/ask-skill-capture/skill.yaml,sha256=KnJsu8VY-MfKGUwpWBoW3O0-5Cqb66LWPnmOL-X0Roc,276
|
|
120
|
+
skills/tooling/ask-skill-creator/README.md,sha256=k13CxRrPWzoezr9Kriz3_sVEVFr_0CEX5m1kaG0xr-s,5685
|
|
121
|
+
skills/tooling/ask-skill-creator/SKILL.md,sha256=21Zdx11ct_V8R69oocuzEKgGnWKSA8M-42yRuNGfnNk,5758
|
|
122
|
+
skills/tooling/ask-skill-creator/skill.yaml,sha256=8QxYJna4W6LEvboGtetz7gCSJIwQiwtF7F7spGiEUKw,259
|
|
123
|
+
skills/workflows/skill-creator/workflow.md,sha256=V2Q_dnzyzA06ev58ZpNfAS2y0OZdck1443nthYktA7s,2060
|
|
124
|
+
agent_skill_kit-0.1.1.dist-info/METADATA,sha256=uRv9RCwVT6sA4LaBqM-AhF9LIQk_z6E8Eui36pJxboI,16381
|
|
125
|
+
agent_skill_kit-0.1.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
126
|
+
agent_skill_kit-0.1.1.dist-info/entry_points.txt,sha256=kDEUvxGsgvP-Tt6BJCyghngiFCx5hbZtL_PFkv2iTVk,37
|
|
127
|
+
agent_skill_kit-0.1.1.dist-info/RECORD,,
|
agents/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Agent adapters for skill distribution."""
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"""Antigravity adapter - transforms skills for Google Antigravity."""
|
|
2
|
+
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
from typing import Dict
|
|
5
|
+
|
|
6
|
+
from agents.base import BaseAdapter
|
|
7
|
+
from ask.utils.skill_registry import get_skill_readme
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AntigravityAdapter(BaseAdapter):
|
|
11
|
+
"""Adapter for Antigravity skill format.
|
|
12
|
+
|
|
13
|
+
Paths (from https://antigravity.google/docs/skills):
|
|
14
|
+
- Local (project): .agent/skills/<skill-name>/SKILL.md
|
|
15
|
+
- Global (user): ~/.gemini/antigravity/skills/<skill-name>/SKILL.md
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
def __init__(self, use_global: bool = False, project_root: Path = None):
|
|
19
|
+
if use_global:
|
|
20
|
+
# Global: ~/.gemini/antigravity/skills/
|
|
21
|
+
self.target_dir = Path.home() / ".gemini" / "antigravity" / "skills"
|
|
22
|
+
else:
|
|
23
|
+
# Local: .agent/skills/
|
|
24
|
+
self.project_root = project_root or Path.cwd()
|
|
25
|
+
self.target_dir = self.project_root / ".agent" / "skills"
|
|
26
|
+
|
|
27
|
+
def get_target_path(self, skill: Dict, name: str = None) -> Path:
|
|
28
|
+
"""Get the target path for a skill."""
|
|
29
|
+
skill_name = name or skill.get("name", "unknown")
|
|
30
|
+
return self.target_dir / skill_name / "SKILL.md"
|
|
31
|
+
|
|
32
|
+
def transform(self, skill: Dict) -> str:
|
|
33
|
+
"""
|
|
34
|
+
Transform a skill into Antigravity format.
|
|
35
|
+
|
|
36
|
+
Antigravity uses SKILL.md with YAML frontmatter.
|
|
37
|
+
"""
|
|
38
|
+
name = skill.get("name", "Unknown")
|
|
39
|
+
description = skill.get("description", "")
|
|
40
|
+
version = skill.get("version", "0.0.0")
|
|
41
|
+
readme = get_skill_readme(skill) or ""
|
|
42
|
+
|
|
43
|
+
content = f"""---
|
|
44
|
+
name: {name}
|
|
45
|
+
version: {version}
|
|
46
|
+
description: {description}
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
{readme}
|
|
50
|
+
"""
|
|
51
|
+
return content
|
|
52
|
+
|
|
53
|
+
def install_resources(self, skill: Dict, target_dir: Path, dry_run: bool = False, force: bool = False) -> Dict[str, bool]:
|
|
54
|
+
"""
|
|
55
|
+
Install scripts and sidecar files to the skill directory.
|
|
56
|
+
"""
|
|
57
|
+
import shutil
|
|
58
|
+
|
|
59
|
+
skill_path_str = skill.get("_path")
|
|
60
|
+
if not skill_path_str:
|
|
61
|
+
return {"conflict": False}
|
|
62
|
+
|
|
63
|
+
skill_path = Path(skill_path_str)
|
|
64
|
+
conflicts = []
|
|
65
|
+
resources_to_copy = ["scripts", "reference", "images", "assets", "examples.md", "reference.md"]
|
|
66
|
+
|
|
67
|
+
# Check conflicts
|
|
68
|
+
for resource in resources_to_copy:
|
|
69
|
+
src = skill_path / resource
|
|
70
|
+
dst = target_dir / resource
|
|
71
|
+
if src.exists() and dst.exists() and not force:
|
|
72
|
+
conflicts.append(f"Resource exists: {dst}")
|
|
73
|
+
|
|
74
|
+
if conflicts:
|
|
75
|
+
return {"conflict": True, "details": ", ".join(conflicts)}
|
|
76
|
+
|
|
77
|
+
if dry_run:
|
|
78
|
+
return {"conflict": False}
|
|
79
|
+
|
|
80
|
+
# Perform Copy
|
|
81
|
+
for resource in resources_to_copy:
|
|
82
|
+
src = skill_path / resource
|
|
83
|
+
dst = target_dir / resource
|
|
84
|
+
|
|
85
|
+
if src.exists():
|
|
86
|
+
if force and dst.exists():
|
|
87
|
+
if dst.is_dir():
|
|
88
|
+
shutil.rmtree(dst)
|
|
89
|
+
else:
|
|
90
|
+
dst.unlink()
|
|
91
|
+
|
|
92
|
+
if src.is_dir():
|
|
93
|
+
shutil.copytree(src, dst)
|
|
94
|
+
else:
|
|
95
|
+
shutil.copy2(src, dst)
|
|
96
|
+
|
|
97
|
+
return {"conflict": False}
|