agent-skillforge 0.4.0__tar.gz → 0.4.1__tar.gz
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_skillforge-0.4.0/src/agent_skillforge.egg-info → agent_skillforge-0.4.1}/PKG-INFO +190 -123
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/README.md +189 -122
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/pyproject.toml +1 -1
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1/src/agent_skillforge.egg-info}/PKG-INFO +190 -123
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/agent_skillforge.egg-info/SOURCES.txt +4 -1
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/__init__.py +1 -1
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/adapters.py +71 -18
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/cli.py +161 -2
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/registry.py +132 -34
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/security.py +22 -9
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/skill.py +1 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/tests/test_adapters.py +3 -1
- agent_skillforge-0.4.1/tests/test_badge.py +56 -0
- agent_skillforge-0.4.1/tests/test_hardening.py +119 -0
- agent_skillforge-0.4.1/tests/test_verify_and_pinning.py +129 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/LICENSE +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/setup.cfg +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/agent_skillforge.egg-info/dependency_links.txt +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/agent_skillforge.egg-info/entry_points.txt +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/agent_skillforge.egg-info/requires.txt +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/agent_skillforge.egg-info/top_level.txt +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/__main__.py +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/agent-observability/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/antislop-code/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/blast-radius-containment/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/caveman/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/cognitive-loop-breaker/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/context-compactor/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/contract-test-generator/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/flaky-test-isolation/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/human-in-the-loop/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/mcp-tool-designer/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/performance-profiler/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/runtime-api-verification/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/secret-sanitizer/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/security-threat-modeler/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/self-improving-agent/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/skill-architect/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/skill-architect/references/mechanics.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/spec-driven-development/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/summarize/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/supply-chain-sentinel/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/systematic-debugging/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/tavily-search/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/zero-downtime-migration/SKILL.md +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/errors.py +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/mcp_server.py +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/tests/test_builtins.py +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/tests/test_cli.py +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/tests/test_mcp_server.py +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/tests/test_registry.py +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/tests/test_security.py +0 -0
- {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/tests/test_skill.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-skillforge
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.1
|
|
4
4
|
Summary: Universal package manager, security auditor, and MCP server for portable agent skills (SKILL.md).
|
|
5
5
|
Author-email: gintingism <gintingism@users.noreply.github.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -36,50 +36,88 @@ Provides-Extra: docs
|
|
|
36
36
|
Requires-Dist: mkdocs-material>=9.5; extra == "docs"
|
|
37
37
|
Dynamic: license-file
|
|
38
38
|
|
|
39
|
+
<div align="center">
|
|
40
|
+
|
|
39
41
|
# SkillForge
|
|
40
42
|
|
|
41
|
-
|
|
43
|
+
**Universal package manager, security auditor, and context token profiler for portable AI agent skills (`SKILL.md`).**
|
|
42
44
|
|
|
43
|
-
|
|
45
|
+
[](https://pypi.org/project/agent-skillforge/)
|
|
46
|
+
[](https://pypi.org/project/agent-skillforge/)
|
|
47
|
+
[](https://github.com/gintingism/skillforge/actions)
|
|
48
|
+
[](https://opensource.org/licenses/MIT)
|
|
49
|
+
[](https://github.com/gintingism/skillforge)
|
|
44
50
|
|
|
45
|
-
|
|
46
|
-
2. **Third-party skill safety:** Community skills are executable instructions. Loading unverified `SKILL.md` files or running their bundled scripts without checking for prompt injection or data exfiltration is an open invite for supply-chain attacks.
|
|
51
|
+
*Write once. Audit locally. Deploy seamlessly across Claude Code, Cursor, Google Antigravity, Windsurf, Copilot, and Cline.*
|
|
47
52
|
|
|
48
|
-
|
|
53
|
+
</div>
|
|
49
54
|
|
|
50
55
|
---
|
|
51
56
|
|
|
52
|
-
##
|
|
57
|
+
## ⚡ 10-Second Quickstart (Zero-Install)
|
|
53
58
|
|
|
54
|
-
|
|
59
|
+
No Node.js, npm, or permanent installation required. Run directly with `uvx` or `pipx`:
|
|
55
60
|
|
|
56
61
|
```bash
|
|
57
|
-
|
|
62
|
+
# 1. Diagnose your workstation & assistant skills for security & bloat
|
|
63
|
+
uvx agent-skillforge doctor
|
|
64
|
+
|
|
65
|
+
# 2. Audit any local or community skill before executing it
|
|
66
|
+
uvx agent-skillforge audit ./skills/my-skill
|
|
67
|
+
|
|
68
|
+
# 3. Profile startup context token overhead vs on-demand body cost
|
|
69
|
+
uvx agent-skillforge budget
|
|
70
|
+
|
|
71
|
+
# 4. Generate an official verified badge for your skill repository
|
|
72
|
+
uvx agent-skillforge badge ./skills/my-skill
|
|
58
73
|
```
|
|
59
74
|
|
|
60
|
-
|
|
75
|
+
Or install permanently via `pip`:
|
|
76
|
+
```bash
|
|
77
|
+
pip install agent-skillforge
|
|
78
|
+
```
|
|
61
79
|
|
|
62
80
|
---
|
|
63
81
|
|
|
64
|
-
##
|
|
82
|
+
## 💡 Why SkillForge?
|
|
65
83
|
|
|
66
|
-
|
|
84
|
+
As AI coding assistants adopt the open `SKILL.md` format (standardized under the Agentic AI Foundation / AAIF), two major friction points have emerged:
|
|
67
85
|
|
|
68
|
-
|
|
86
|
+
1. **Supply-Chain & Prompt Injection Attacks:** Community skills are executable instruction sets. Unvetted skills can hide indirect prompt injections, Trojan Unicode characters, credential harvesters (`~/.ssh`, `~/.aws`), or command injections.
|
|
87
|
+
2. **Context Window & Token Burn:** Loading unoptimized skills burns hundreds of tokens on every turn before an agent even starts thinking, driving up API bills and degrading reasoning quality.
|
|
69
88
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
89
|
+
| Feature | Manual Copy-Paste | Node CLIs (`npx skills`) | **SkillForge** |
|
|
90
|
+
| :--- | :---: | :---: | :---: |
|
|
91
|
+
| **Language Runtime** | None | Requires Node.js / npm | **Pure Python (`uvx` / `pip`)** |
|
|
92
|
+
| **Offline Security Linter** | ❌ None | ⚠️ Cloud-dependent / SaaS | **✅ 100% Local Deterministic AST & Regex** |
|
|
93
|
+
| **Prompt Injection Detection** | ❌ None | ❌ No | **✅ Built-in (`SEC-002`)** |
|
|
94
|
+
| **Trojan Unicode & Bidi Scans** | ❌ None | ❌ No | **✅ Built-in (`SEC-001`, `SEC-005`)** |
|
|
95
|
+
| **Context Token Profiler** | ❌ None | ❌ No | **✅ Built-in (`skillforge budget`)** |
|
|
96
|
+
| **Reproducible Lockfile** | ❌ None | ⚠️ Loose | **✅ SHA-256 + Pinned Git Commit SHA** |
|
|
97
|
+
| **Native MCP Server** | ❌ None | ❌ No | **✅ Built-in (`skillforge serve-mcp`)** |
|
|
98
|
+
| **Assistant Targets** | Manual | Limited | **Claude, Cursor, Antigravity, Windsurf, Cline, Copilot** |
|
|
73
99
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 🛠️ Core Workflows
|
|
77
103
|
|
|
78
|
-
|
|
104
|
+
### 1. Diagnose your workspace (`doctor`)
|
|
105
|
+
|
|
106
|
+
Inspect all installed skills across your project or global workstation (Claude Code, Cursor, Antigravity, Windsurf, Cline) for security vulnerabilities, context window load, and broken pointers:
|
|
79
107
|
|
|
80
|
-
To install and verify all locked skills across a team checkout or CI environment:
|
|
81
108
|
```bash
|
|
82
|
-
|
|
109
|
+
# Diagnose active project
|
|
110
|
+
skillforge doctor
|
|
111
|
+
|
|
112
|
+
# Diagnose all global machine skills
|
|
113
|
+
skillforge doctor --global
|
|
114
|
+
```
|
|
115
|
+
```text
|
|
116
|
+
SkillForge Doctor Diagnostic (Project: 4 skills)
|
|
117
|
+
Health Status: PASSED (All Healthy)
|
|
118
|
+
Startup Context Load: ~340 tokens (Every turn discovery cost)
|
|
119
|
+
On-Demand Body Cost: ~2180 tokens
|
|
120
|
+
Security Findings: 0 Critical, 0 High, 0 Total
|
|
83
121
|
```
|
|
84
122
|
|
|
85
123
|
### 2. Audit a skill before running it (`audit`)
|
|
@@ -94,66 +132,99 @@ Example output:
|
|
|
94
132
|
```text
|
|
95
133
|
Audit Report: my-new-skill
|
|
96
134
|
Status: PASSED (Score: 100/100)
|
|
97
|
-
Context Load:
|
|
135
|
+
Context Load: 60 pointer tokens | 520 body tokens (27 lines)
|
|
98
136
|
Total Findings: 0
|
|
99
137
|
```
|
|
100
138
|
|
|
101
139
|
What the auditor scans for:
|
|
102
140
|
- **Invisible Unicode (SEC-001):** Zero-width spaces (`\u200B`, `\uFEFF`), homoglyphs, and directional overrides used to hide prompt instructions from human code review.
|
|
103
|
-
- **Prompt Injections & Jailbreaks (SEC-002):** Directives like `"ignore previous instructions"`, `"system override"`, or attempts to disable safety guardrails
|
|
141
|
+
- **Prompt Injections & Jailbreaks (SEC-002):** Directives like `"ignore previous instructions"`, `"system override"`, or attempts to disable safety guardrails. Quoted references in defensive guides are flagged as `MEDIUM`, while bare imperative commands remain `CRITICAL`.
|
|
104
142
|
- **Dangerous Shell Commands (SEC-003):** Script patterns like `curl ... | bash`, base64-decoded execution, and outbound data exfiltration.
|
|
105
143
|
- **Credential Path Access (SEC-004):** Unsanctioned attempts to access `~/.ssh`, `~/.aws/credentials`, or local environment secrets.
|
|
106
|
-
- **
|
|
107
|
-
- **
|
|
108
|
-
- **Trigger Quality (QUAL-001):**
|
|
109
|
-
- **Directory Alignment (QUAL-002):**
|
|
110
|
-
- **Progressive Disclosure Budget (QUAL-003):** Flags `SKILL.md` bodies exceeding 500 lines or ~5,000 tokens so heavy
|
|
111
|
-
- **Broken Disclosure Pointers (QUAL-004):** Verifies
|
|
112
|
-
- **Applicability Hijacking (QUAL-006):** Flags overbroad trigger descriptions that claim all tasks (metadata poisoning).
|
|
144
|
+
- **Invisible Bidi & Control Characters (SEC-005):** Trojan Source bidirectional control characters (`\u202E`, `\u2066`) that alter code execution order while displaying harmlessly.
|
|
145
|
+
- **Markdown Link Spoofing & Phishing (SEC-006):** Mismatched visual labels vs target URLs hiding malicious redirects.
|
|
146
|
+
- **Trigger Quality (QUAL-001):** Verifies model-invoked descriptions contain explicit activation conditions.
|
|
147
|
+
- **Directory Alignment (QUAL-002):** Ensures folder name matches YAML `name`.
|
|
148
|
+
- **Progressive Disclosure Budget (QUAL-003):** Flags `SKILL.md` bodies exceeding 500 lines or ~5,000 tokens so heavy references are moved to `references/`.
|
|
149
|
+
- **Broken Disclosure Pointers (QUAL-004):** Verifies cited `references/...` or `scripts/...` exist.
|
|
113
150
|
|
|
114
151
|
For CI pipelines, pass `--strict` to fail on any warning, or `--json` for automation:
|
|
115
152
|
```bash
|
|
116
153
|
skillforge audit ./skills/my-new-skill --strict --json
|
|
117
154
|
```
|
|
118
155
|
|
|
119
|
-
### 3.
|
|
156
|
+
### 3. Profile your project's context token budget (`budget`)
|
|
120
157
|
|
|
121
|
-
|
|
158
|
+
Every model-invoked skill keeps its `name` and `description` in the startup context window on every turn. Measure how much context your skills consume before they even trigger:
|
|
122
159
|
|
|
123
160
|
```bash
|
|
124
|
-
|
|
125
|
-
|
|
161
|
+
skillforge budget
|
|
162
|
+
# Or inspect the built-in catalog:
|
|
163
|
+
skillforge budget --builtin
|
|
164
|
+
```
|
|
165
|
+
```text
|
|
166
|
+
Context Budget Profile (22 skills)
|
|
167
|
+
Always-Loaded Startup Pointer Cost: ~1305 tokens
|
|
168
|
+
On-Demand SKILL.md Body Cost: ~7483 tokens
|
|
169
|
+
Disclosed Resources Cost: ~349 tokens
|
|
170
|
+
```
|
|
126
171
|
|
|
127
|
-
|
|
128
|
-
|
|
172
|
+
### 4. Generate an official verified badge (`badge`)
|
|
173
|
+
|
|
174
|
+
Show users that your skill is clean, secure, and audited. Generate an official badge for your skill repository:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
skillforge badge ./my-skill
|
|
178
|
+
```
|
|
179
|
+
```markdown
|
|
180
|
+
[](https://github.com/gintingism/skillforge)
|
|
129
181
|
```
|
|
130
182
|
|
|
131
|
-
###
|
|
183
|
+
### 5. Grab a skill directly from GitHub (`add`)
|
|
132
184
|
|
|
133
|
-
|
|
185
|
+
Pull skills directly from remote Git repositories with security auditing and reproducible commit pinning:
|
|
134
186
|
|
|
135
187
|
```bash
|
|
136
|
-
|
|
137
|
-
skillforge
|
|
188
|
+
# Pull a specific skill from a GitHub repo
|
|
189
|
+
skillforge add anthropics/skills:pdf
|
|
190
|
+
|
|
191
|
+
# Pin to an exact release tag or branch
|
|
192
|
+
skillforge add anthropics/skills:pdf@v1.2.0
|
|
193
|
+
|
|
194
|
+
# Install from your team's repository
|
|
195
|
+
skillforge add gintingism/skillforge:systematic-debugging
|
|
138
196
|
```
|
|
139
197
|
|
|
140
|
-
|
|
198
|
+
SkillForge fetches the skill, audits its security, routes it to all detected assistant targets, and pins its SHA-256 digest + Git commit SHA into `skillforge.lock`.
|
|
141
199
|
|
|
142
|
-
|
|
200
|
+
### 6. Verify skill integrity and detect drift (`verify`)
|
|
201
|
+
|
|
202
|
+
Check installed skills against `skillforge.lock` in CI/CD or local environments without modifying files or making network requests. Detects file tampering, missing dependencies, or unmanaged skills:
|
|
143
203
|
|
|
144
204
|
```bash
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
205
|
+
# Verify active project
|
|
206
|
+
skillforge verify
|
|
207
|
+
|
|
208
|
+
# Output JSON for CI automation
|
|
209
|
+
skillforge verify --json
|
|
148
210
|
```
|
|
149
211
|
```text
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
212
|
+
OK clean-code (sha256: 4f3a9e1208bc...)
|
|
213
|
+
OK systematic-debugging (sha256: 8a91bc7d01fe...)
|
|
214
|
+
|
|
215
|
+
Verification PASSED: 2 skill(s) match skillforge.lock.
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### 7. Compare changes before updating (`diff`)
|
|
219
|
+
|
|
220
|
+
Inspect diffs between local skills and upstream repositories, or compare two skill versions:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
skillforge diff ./skills/my-skill
|
|
224
|
+
skillforge diff my-skill gintingism/skillforge:my-skill
|
|
154
225
|
```
|
|
155
226
|
|
|
156
|
-
###
|
|
227
|
+
### 8. Manage installed skills (`list` & `remove`)
|
|
157
228
|
|
|
158
229
|
See which skills are active across your editor targets:
|
|
159
230
|
|
|
@@ -175,7 +246,7 @@ To remove a skill from all detected assistants and update your lockfile:
|
|
|
175
246
|
skillforge remove antislop-code
|
|
176
247
|
```
|
|
177
248
|
|
|
178
|
-
###
|
|
249
|
+
### 9. Create and package your own skills (`create` & `pack`)
|
|
179
250
|
|
|
180
251
|
Scaffold a single skill file or a full directory package with scripts and reference docs:
|
|
181
252
|
|
|
@@ -195,9 +266,60 @@ skillforge unpack ./db-migrator.zip --output ./skills
|
|
|
195
266
|
|
|
196
267
|
---
|
|
197
268
|
|
|
198
|
-
##
|
|
269
|
+
## 🤖 Automate in CI/CD (GitHub Action)
|
|
270
|
+
|
|
271
|
+
Add SkillForge to your GitHub Actions workflow to audit every Pull Request:
|
|
272
|
+
|
|
273
|
+
```yaml
|
|
274
|
+
name: Audit Agent Skills
|
|
275
|
+
on: [pull_request, push]
|
|
276
|
+
|
|
277
|
+
jobs:
|
|
278
|
+
audit:
|
|
279
|
+
runs-on: ubuntu-latest
|
|
280
|
+
steps:
|
|
281
|
+
- uses: actions/checkout@v4
|
|
282
|
+
- name: Run SkillForge Security & Token Linter
|
|
283
|
+
uses: gintingism/skillforge@main
|
|
284
|
+
with:
|
|
285
|
+
path: './skills'
|
|
286
|
+
strict: 'true'
|
|
287
|
+
budget: 'true'
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 🔌 Model Context Protocol (MCP) Integration
|
|
199
293
|
|
|
200
|
-
SkillForge
|
|
294
|
+
SkillForge includes a native MCP server so your coding agent can inspect, search, and audit skills autonomously during its development loop:
|
|
295
|
+
|
|
296
|
+
```json
|
|
297
|
+
{
|
|
298
|
+
"mcpServers": {
|
|
299
|
+
"skillforge": {
|
|
300
|
+
"command": "skillforge",
|
|
301
|
+
"args": ["serve-mcp"],
|
|
302
|
+
"env": {
|
|
303
|
+
"SKILLFORGE_REGISTRY_PATH": ".skillforge"
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
Exposed MCP tools:
|
|
311
|
+
- `search_skills(query, limit)`: Search local and built-in skill catalogs.
|
|
312
|
+
- `get_skill(name)`: Read the full `SKILL.md` instructions.
|
|
313
|
+
- `get_skill_resource(name, resource_path)`: Read disclosed `references/*` or `scripts/*` files on demand.
|
|
314
|
+
- `validate_skill(content)`: Test frontmatter syntax.
|
|
315
|
+
- `audit_skill(content)`: Audit a raw skill document for prompt injections and malicious patterns.
|
|
316
|
+
- `skill://{name}`: Resource URI for direct document retrieval.
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## 🎯 Supported Assistants
|
|
321
|
+
|
|
322
|
+
SkillForge automatically detects your assistant environment and routes skills to the canonical directory:
|
|
201
323
|
|
|
202
324
|
| Assistant | Detected by | Installed location |
|
|
203
325
|
| :--- | :--- | :--- |
|
|
@@ -209,14 +331,14 @@ SkillForge automatically detects which assistants your repository uses and place
|
|
|
209
331
|
| **Codex / Universal Agents** | `AGENTS.md`, `.agents/` | Appended to `AGENTS.md` catalog |
|
|
210
332
|
| **GitHub Copilot** | `.github/` | `.github/copilot-instructions.md` |
|
|
211
333
|
|
|
212
|
-
To install a skill to your user
|
|
334
|
+
To install a skill globally to your user profile instead of the current project, add `--global` (`-g`):
|
|
213
335
|
```bash
|
|
214
336
|
skillforge install systematic-debugging --global
|
|
215
337
|
```
|
|
216
338
|
|
|
217
339
|
---
|
|
218
340
|
|
|
219
|
-
## Shipped Built-in Skills
|
|
341
|
+
## 📦 Shipped Built-in Skills (22 Zero-Slop Skills)
|
|
220
342
|
|
|
221
343
|
SkillForge ships with 22 practical engineering skills designed to counteract common agent failure modes identified in benchmark research (SWE-bench, Snyk ToxicSkills, Skill-Inject):
|
|
222
344
|
|
|
@@ -250,72 +372,17 @@ SkillForge ships with 22 practical engineering skills designed to counteract com
|
|
|
250
372
|
|
|
251
373
|
---
|
|
252
374
|
|
|
253
|
-
##
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
Exposed MCP tools:
|
|
272
|
-
- `search_skills(query, limit)`: Search local and built-in skill catalogs.
|
|
273
|
-
- `get_skill(name)`: Read the full `SKILL.md` instructions.
|
|
274
|
-
- `get_skill_resource(name, resource_path)`: Read disclosed `references/*` or `scripts/*` files from a skill package on demand.
|
|
275
|
-
- `validate_skill(content)`: Test frontmatter syntax.
|
|
276
|
-
- `audit_skill(content)`: Audit a raw skill document for prompt injections and malicious patterns.
|
|
277
|
-
- `skill://{name}`: Resource URI for direct document retrieval.
|
|
278
|
-
|
|
279
|
-
---
|
|
280
|
-
|
|
281
|
-
## Publishing to PyPI
|
|
282
|
-
|
|
283
|
-
SkillForge is published to PyPI under the package name `agent-skillforge`.
|
|
284
|
-
|
|
285
|
-
### Prerequisites for GitHub Actions Deployment
|
|
286
|
-
1. Ensure your repository has Trusted Publishing configured on [PyPI](https://pypi.org/manage/account/publishing/):
|
|
287
|
-
- **PyPI Project Name:** `agent-skillforge`
|
|
288
|
-
- **Owner:** `gintingism`
|
|
289
|
-
- **Repository:** `skillforge`
|
|
290
|
-
- **Workflow name:** `publish.yml`
|
|
291
|
-
- **Environment:** `pypi`
|
|
292
|
-
2. Bump the version in `pyproject.toml` (e.g. `0.2.0`).
|
|
293
|
-
|
|
294
|
-
### Triggering a Release
|
|
295
|
-
You can publish through any of these three methods:
|
|
296
|
-
- **Git tag:** `git tag v0.2.0 && git push origin v0.2.0`
|
|
297
|
-
- **GitHub Release:** Publish a new release in the GitHub UI.
|
|
298
|
-
- **Manual dispatch:** Go to the GitHub Actions tab → "Publish package" → click "Run workflow".
|
|
299
|
-
|
|
300
|
-
### Local build check
|
|
301
|
-
To test building distributions locally before releasing:
|
|
302
|
-
```bash
|
|
303
|
-
python -m pip install --upgrade build twine
|
|
304
|
-
python -m build
|
|
305
|
-
python -m twine check dist/*
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
---
|
|
309
|
-
|
|
310
|
-
## Contributing & Development
|
|
311
|
-
|
|
312
|
-
```bash
|
|
313
|
-
git clone https://github.com/gintingism/skillforge.git
|
|
314
|
-
cd skillforge
|
|
315
|
-
|
|
316
|
-
python -m pip install -e ".[dev]"
|
|
317
|
-
pytest
|
|
318
|
-
mypy src
|
|
319
|
-
```
|
|
375
|
+
## 🚀 Community & Contributing
|
|
376
|
+
|
|
377
|
+
- **Distribution:** Published on PyPI as [`agent-skillforge`](https://pypi.org/project/agent-skillforge/).
|
|
378
|
+
- **Launch Playbook:** See [`docs/LAUNCH_PLAYBOOK.md`](docs/LAUNCH_PLAYBOOK.md) for community distribution and launch guidelines.
|
|
379
|
+
- **Development:**
|
|
380
|
+
```bash
|
|
381
|
+
git clone https://github.com/gintingism/skillforge.git
|
|
382
|
+
cd skillforge
|
|
383
|
+
python -m pip install -e ".[dev]"
|
|
384
|
+
pytest
|
|
385
|
+
mypy src
|
|
386
|
+
```
|
|
320
387
|
|
|
321
388
|
License: [MIT](LICENSE)
|