agent-skillforge 0.4.0__tar.gz → 0.4.2__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.
Files changed (63) hide show
  1. agent_skillforge-0.4.2/PKG-INFO +459 -0
  2. agent_skillforge-0.4.2/README.md +421 -0
  3. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/pyproject.toml +1 -1
  4. agent_skillforge-0.4.2/src/agent_skillforge.egg-info/PKG-INFO +459 -0
  5. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/agent_skillforge.egg-info/SOURCES.txt +11 -1
  6. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/__init__.py +1 -1
  7. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/adapters.py +71 -18
  8. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/cli.py +276 -2
  9. agent_skillforge-0.4.2/src/skillforge/evals.py +230 -0
  10. agent_skillforge-0.4.2/src/skillforge/openapi.py +202 -0
  11. agent_skillforge-0.4.2/src/skillforge/optimizer.py +273 -0
  12. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/registry.py +132 -34
  13. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/security.py +91 -9
  14. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/skill.py +1 -0
  15. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/tests/test_adapters.py +3 -1
  16. agent_skillforge-0.4.2/tests/test_badge.py +56 -0
  17. agent_skillforge-0.4.2/tests/test_evals.py +95 -0
  18. agent_skillforge-0.4.2/tests/test_hardening.py +119 -0
  19. agent_skillforge-0.4.2/tests/test_openapi.py +82 -0
  20. agent_skillforge-0.4.2/tests/test_optimizer.py +96 -0
  21. agent_skillforge-0.4.2/tests/test_sarif.py +64 -0
  22. agent_skillforge-0.4.2/tests/test_verify_and_pinning.py +129 -0
  23. agent_skillforge-0.4.0/PKG-INFO +0 -321
  24. agent_skillforge-0.4.0/README.md +0 -283
  25. agent_skillforge-0.4.0/src/agent_skillforge.egg-info/PKG-INFO +0 -321
  26. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/LICENSE +0 -0
  27. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/setup.cfg +0 -0
  28. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/agent_skillforge.egg-info/dependency_links.txt +0 -0
  29. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/agent_skillforge.egg-info/entry_points.txt +0 -0
  30. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/agent_skillforge.egg-info/requires.txt +0 -0
  31. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/agent_skillforge.egg-info/top_level.txt +0 -0
  32. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/__main__.py +0 -0
  33. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/agent-observability/SKILL.md +0 -0
  34. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/antislop-code/SKILL.md +0 -0
  35. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/blast-radius-containment/SKILL.md +0 -0
  36. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/caveman/SKILL.md +0 -0
  37. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/cognitive-loop-breaker/SKILL.md +0 -0
  38. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/context-compactor/SKILL.md +0 -0
  39. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/contract-test-generator/SKILL.md +0 -0
  40. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/flaky-test-isolation/SKILL.md +0 -0
  41. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/human-in-the-loop/SKILL.md +0 -0
  42. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/mcp-tool-designer/SKILL.md +0 -0
  43. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/performance-profiler/SKILL.md +0 -0
  44. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/runtime-api-verification/SKILL.md +0 -0
  45. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/secret-sanitizer/SKILL.md +0 -0
  46. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/security-threat-modeler/SKILL.md +0 -0
  47. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/self-improving-agent/SKILL.md +0 -0
  48. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/skill-architect/SKILL.md +0 -0
  49. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/skill-architect/references/mechanics.md +0 -0
  50. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/spec-driven-development/SKILL.md +0 -0
  51. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/summarize/SKILL.md +0 -0
  52. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/supply-chain-sentinel/SKILL.md +0 -0
  53. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/systematic-debugging/SKILL.md +0 -0
  54. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/tavily-search/SKILL.md +0 -0
  55. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/builtin_skills/zero-downtime-migration/SKILL.md +0 -0
  56. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/errors.py +0 -0
  57. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/src/skillforge/mcp_server.py +0 -0
  58. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/tests/test_builtins.py +0 -0
  59. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/tests/test_cli.py +0 -0
  60. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/tests/test_mcp_server.py +0 -0
  61. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/tests/test_registry.py +0 -0
  62. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/tests/test_security.py +0 -0
  63. {agent_skillforge-0.4.0 → agent_skillforge-0.4.2}/tests/test_skill.py +0 -0
@@ -0,0 +1,459 @@
1
+ Metadata-Version: 2.4
2
+ Name: agent-skillforge
3
+ Version: 0.4.2
4
+ Summary: Universal package manager, security auditor, and MCP server for portable agent skills (SKILL.md).
5
+ Author-email: gintingism <gintingism@users.noreply.github.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/gintingism/skillforge
8
+ Project-URL: Repository, https://github.com/gintingism/skillforge
9
+ Project-URL: Issues, https://github.com/gintingism/skillforge/issues
10
+ Project-URL: Documentation, https://gintingism.github.io/skillforge/
11
+ Keywords: agent-skills,skills,agentskills,mcp,claude-code,cursor,antigravity,windsurf,security-audit,prompt-injection,developer-tools
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3 :: Only
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Security
20
+ Classifier: Topic :: Software Development :: Build Tools
21
+ Classifier: Topic :: Software Development :: Libraries
22
+ Requires-Python: >=3.11
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: mcp>=2.3.0
26
+ Requires-Dist: PyYAML>=6.0
27
+ Requires-Dist: typer>=0.12
28
+ Provides-Extra: dev
29
+ Requires-Dist: build>=1.0; extra == "dev"
30
+ Requires-Dist: mypy>=1.10; extra == "dev"
31
+ Requires-Dist: pytest>=8.0; extra == "dev"
32
+ Requires-Dist: pytest-cov>=5.0; extra == "dev"
33
+ Requires-Dist: twine>=5.0; extra == "dev"
34
+ Requires-Dist: types-PyYAML>=6.0; extra == "dev"
35
+ Provides-Extra: docs
36
+ Requires-Dist: mkdocs-material>=9.5; extra == "docs"
37
+ Dynamic: license-file
38
+
39
+ <div align="center">
40
+
41
+ # SkillForge
42
+
43
+ **Universal package manager, security auditor, and context token profiler for portable AI agent skills (`SKILL.md`).**
44
+
45
+ [![PyPI version](https://img.shields.io/pypi/v/agent-skillforge.svg?color=blue&style=flat-square)](https://pypi.org/project/agent-skillforge/)
46
+ [![Python versions](https://img.shields.io/pypi/pyversions/agent-skillforge.svg?style=flat-square)](https://pypi.org/project/agent-skillforge/)
47
+ [![CI](https://img.shields.io/github/actions/workflow/status/gintingism/skillforge/publish.yml?style=flat-square)](https://github.com/gintingism/skillforge/actions)
48
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
49
+ [![Audited by SkillForge](https://img.shields.io/badge/Security-SkillForge%20Passed-2ea44f?logo=shield&style=flat-square)](https://github.com/gintingism/skillforge)
50
+
51
+ *Write once. Audit locally. Deploy seamlessly across Claude Code, Cursor, Google Antigravity, Windsurf, Copilot, and Cline.*
52
+
53
+ </div>
54
+
55
+ ---
56
+
57
+ ## ⚡ 10-Second Quickstart (Zero-Install)
58
+
59
+ No Node.js, npm, or permanent installation required. Run directly with `uvx` or `pipx`:
60
+
61
+ ```bash
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
73
+ ```
74
+
75
+ Or install permanently via `pip`:
76
+ ```bash
77
+ pip install agent-skillforge
78
+ ```
79
+
80
+ ---
81
+
82
+ ## 💡 Why SkillForge?
83
+
84
+ As AI coding assistants adopt the open `SKILL.md` format (standardized under the Agentic AI Foundation / AAIF), two major friction points have emerged:
85
+
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.
88
+
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** |
99
+
100
+ ---
101
+
102
+ ## 🛠️ Core Workflows
103
+
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:
107
+
108
+ ```bash
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
121
+ ```
122
+
123
+ ### 2. Audit a skill before running it (`audit`)
124
+
125
+ Before letting an agent read and execute a skill, inspect it for hidden payloads, broken progressive disclosure links, and prompt injection:
126
+
127
+ ```bash
128
+ skillforge audit ./skills/my-new-skill
129
+ ```
130
+
131
+ Example output:
132
+ ```text
133
+ Audit Report: my-new-skill
134
+ Status: PASSED (Score: 100/100)
135
+ Context Load: 60 pointer tokens | 520 body tokens (27 lines)
136
+ Total Findings: 0
137
+ ```
138
+
139
+ What the auditor scans for:
140
+ - **Invisible Unicode (SEC-001):** Zero-width spaces (`\u200B`, `\uFEFF`), homoglyphs, and directional overrides used to hide prompt instructions from human code review.
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`.
142
+ - **Dangerous Shell Commands (SEC-003):** Script patterns like `curl ... | bash`, base64-decoded execution, and outbound data exfiltration.
143
+ - **Credential Path Access (SEC-004):** Unsanctioned attempts to access `~/.ssh`, `~/.aws/credentials`, or local environment secrets.
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.
150
+
151
+ For CI pipelines, pass `--strict` to fail on any warning, `--json` for automation, or `--sarif` for GitHub Code Scanning:
152
+ ```bash
153
+ # Export standard OASIS SARIF v2.1.0 report
154
+ skillforge audit ./skills/my-new-skill --sarif results.sarif
155
+ ```
156
+
157
+ ### 3. Profile your project's context token budget (`budget`)
158
+
159
+ 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:
160
+
161
+ ```bash
162
+ skillforge budget
163
+ # Or inspect the built-in catalog:
164
+ skillforge budget --builtin
165
+ ```
166
+ ```text
167
+ Context Budget Profile (22 skills)
168
+ Always-Loaded Startup Pointer Cost: ~1305 tokens
169
+ On-Demand SKILL.md Body Cost: ~7483 tokens
170
+ Disclosed Resources Cost: ~349 tokens
171
+ ```
172
+
173
+ ### 4. Test skill trigger accuracy and assertions (`test`)
174
+
175
+ Verify that your skill description triggers on relevant user prompts, ignores unrelated requests, and respects keyword constraints using a deterministic test suite:
176
+
177
+ ```bash
178
+ # Initialize a starter evals/evals.json test suite
179
+ skillforge test ./skills/my-skill --init
180
+
181
+ # Run test cases
182
+ skillforge test ./skills/my-skill
183
+ ```
184
+ ```text
185
+ Running evals for 'my-skill' (4 test cases)...
186
+ [PASS] trigger_positive_core_my_skill: "Please help me with my-skill following our workflow."
187
+ [PASS] trigger_positive_task: "I need to execute a task: my skill workflow description"
188
+ [PASS] suppress_negative_unrelated_math: "Calculate the Fibonacci sequence for n=30 in Python."
189
+ [PASS] suppress_negative_greeting: "Hello there, what is the weather like in Tokyo today?"
190
+
191
+ Result: PASSED (4/4 passed)
192
+ ```
193
+
194
+ Use `--json` in CI to verify that changes to `description` do not break activation accuracy.
195
+
196
+ ### 5. Optimize bloated skills with progressive disclosure (`optimize`)
197
+
198
+ When a skill exceeds the 500-line or 5,000-token progressive disclosure budget (`QUAL-003`), extract heavy reference sections into `references/` while keeping concise pointers in `SKILL.md`:
199
+
200
+ ```bash
201
+ # Refactor an oversized skill directory in-place
202
+ skillforge optimize ./skills/bloated-api-skill --max-lines 400
203
+
204
+ # Or output to a fresh destination folder
205
+ skillforge optimize ./skills/bloated-api-skill -o ./skills/clean-api-skill
206
+ ```
207
+ ```text
208
+ Optimized 'bloated-api-skill':
209
+ Lines: 680 -> 240 (440 lines saved)
210
+ Tokens: ~6200 -> ~2100 (4100 tokens saved)
211
+ Extracted References:
212
+ - references/database-guidelines.md
213
+ - references/api-endpoints-manual.md
214
+ Destination: ./skills/clean-api-skill
215
+ Audit Verification: PASSED
216
+ ```
217
+
218
+ ### 6. Convert OpenAPI / Swagger to a portable skill (`import-openapi`)
219
+
220
+ Convert an existing REST API specification (OpenAPI 3.0, 3.1, or Swagger 2.0 in JSON or YAML) into a progressive disclosure skill package without running external scripts:
221
+
222
+ ```bash
223
+ skillforge import-openapi ./openapi.yaml --output ./skills
224
+ ```
225
+ ```text
226
+ Successfully imported 'petstore-api' into skills/petstore-api
227
+ SKILL.md: 28 lines (~320 body tokens)
228
+ endpoints.md reference: ~1850 tokens
229
+ ```
230
+
231
+ The resulting package contains an executive overview in `SKILL.md` and detailed endpoint schemas in `references/endpoints.md`, keeping turn-by-turn context overhead low.
232
+
233
+ ### 7. Generate an official verified badge (`badge`)
234
+
235
+ Show users that your skill is clean, secure, and audited. Generate an official badge for your skill repository:
236
+
237
+ ```bash
238
+ skillforge badge ./my-skill
239
+ ```
240
+ ```markdown
241
+ [![Audited by SkillForge](https://img.shields.io/badge/SkillForge-Security%20Passed%20100%2F100-2ea44f?logo=shield&style=flat-square)](https://github.com/gintingism/skillforge)
242
+ ```
243
+
244
+ ### 8. Grab a skill directly from GitHub (`add`)
245
+
246
+ Pull skills directly from remote Git repositories with security auditing and reproducible commit pinning:
247
+
248
+ ```bash
249
+ # Pull a specific skill from a GitHub repo
250
+ skillforge add anthropics/skills:pdf
251
+
252
+ # Pin to an exact release tag or branch
253
+ skillforge add anthropics/skills:pdf@v1.2.0
254
+
255
+ # Install from your team's repository
256
+ skillforge add gintingism/skillforge:systematic-debugging
257
+ ```
258
+
259
+ 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`.
260
+
261
+ ### 9. Verify skill integrity and detect drift (`verify`)
262
+
263
+ 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:
264
+
265
+ ```bash
266
+ # Verify active project
267
+ skillforge verify
268
+
269
+ # Output JSON for CI automation
270
+ skillforge verify --json
271
+ ```
272
+ ```text
273
+ OK clean-code (sha256: 4f3a9e1208bc...)
274
+ OK systematic-debugging (sha256: 8a91bc7d01fe...)
275
+
276
+ Verification PASSED: 2 skill(s) match skillforge.lock.
277
+ ```
278
+
279
+ ### 10. Compare changes before updating (`diff`)
280
+
281
+ Inspect diffs between local skills and upstream repositories, or compare two skill versions:
282
+
283
+ ```bash
284
+ skillforge diff ./skills/my-skill
285
+ skillforge diff my-skill gintingism/skillforge:my-skill
286
+ ```
287
+
288
+ ### 11. Manage installed skills (`list` & `remove`)
289
+
290
+ See which skills are active across your editor targets:
291
+
292
+ ```bash
293
+ skillforge list
294
+ ```
295
+ ```text
296
+ Installed Skills:
297
+ [ClaudeCode]:
298
+ - antislop-code
299
+ - systematic-debugging
300
+ [Cursor]:
301
+ - antislop-code
302
+ - systematic-debugging
303
+ ```
304
+
305
+ To remove a skill from all detected assistants and update your lockfile:
306
+ ```bash
307
+ skillforge remove antislop-code
308
+ ```
309
+
310
+ ### 12. Create and package your own skills (`create` & `pack`)
311
+
312
+ Scaffold a single skill file or a full directory package with scripts and reference docs:
313
+
314
+ ```bash
315
+ # Standard skill file
316
+ skillforge create api-design -d "Design REST/gRPC APIs. Use when creating new backend endpoints."
317
+
318
+ # Full package with scripts/ and references/
319
+ skillforge create db-migrator -d "Run Postgres migrations safely. Use when writing SQL schema updates." --full
320
+ ```
321
+
322
+ Pack it into a shareable zip archive (or unpack one safely with path traversal protection):
323
+ ```bash
324
+ skillforge pack ./db-migrator --output ./db-migrator.zip
325
+ skillforge unpack ./db-migrator.zip --output ./skills
326
+ ```
327
+
328
+ ---
329
+
330
+ ## 🤖 Automate in CI/CD (GitHub Action)
331
+
332
+ Add SkillForge to your GitHub Actions workflow to audit pull requests, enforce progressive disclosure budgets, and upload SARIF reports to GitHub Code Scanning:
333
+
334
+ ```yaml
335
+ name: Audit Agent Skills
336
+ on: [pull_request, push]
337
+
338
+ jobs:
339
+ audit:
340
+ runs-on: ubuntu-latest
341
+ permissions:
342
+ security-events: write
343
+ contents: read
344
+ steps:
345
+ - uses: actions/checkout@v4
346
+ - name: Run SkillForge Security & Token Linter
347
+ uses: gintingism/skillforge@main
348
+ with:
349
+ path: './skills'
350
+ strict: 'true'
351
+ budget: 'true'
352
+ sarif: 'skillforge-findings.sarif'
353
+
354
+ - name: Upload SARIF to GitHub Code Scanning
355
+ uses: github/codeql-action/upload-sarif@v3
356
+ if: always()
357
+ with:
358
+ sarif_file: 'skillforge-findings.sarif'
359
+ ```
360
+
361
+ ---
362
+
363
+ ## 🔌 Model Context Protocol (MCP) Integration
364
+
365
+ SkillForge includes a native MCP server so your coding agent can inspect, search, and audit skills autonomously during its development loop:
366
+
367
+ ```json
368
+ {
369
+ "mcpServers": {
370
+ "skillforge": {
371
+ "command": "skillforge",
372
+ "args": ["serve-mcp"],
373
+ "env": {
374
+ "SKILLFORGE_REGISTRY_PATH": ".skillforge"
375
+ }
376
+ }
377
+ }
378
+ }
379
+ ```
380
+
381
+ Exposed MCP tools:
382
+ - `search_skills(query, limit)`: Search local and built-in skill catalogs.
383
+ - `get_skill(name)`: Read the full `SKILL.md` instructions.
384
+ - `get_skill_resource(name, resource_path)`: Read disclosed `references/*` or `scripts/*` files on demand.
385
+ - `validate_skill(content)`: Test frontmatter syntax.
386
+ - `audit_skill(content)`: Audit a raw skill document for prompt injections and malicious patterns.
387
+ - `skill://{name}`: Resource URI for direct document retrieval.
388
+
389
+ ---
390
+
391
+ ## 🎯 Supported Assistants
392
+
393
+ SkillForge automatically detects your assistant environment and routes skills to the canonical directory:
394
+
395
+ | Assistant | Detected by | Installed location |
396
+ | :--- | :--- | :--- |
397
+ | **Google Antigravity / Gemini CLI** | `.gemini/` | `.gemini/config/skills/<name>/SKILL.md` |
398
+ | **Claude Code & Claude Desktop** | `.claude/` | `.claude/skills/<name>/SKILL.md` |
399
+ | **Cursor** | `.cursor/` | `.cursor/skills/<name>/SKILL.md` |
400
+ | **Windsurf** | `.windsurf/`, `.windsurfrules` | `.windsurf/skills/<name>/SKILL.md` |
401
+ | **Cline / Roo-Code** | `.cline/`, `.roomodes` | `.cline/skills/<name>/SKILL.md` |
402
+ | **Codex / Universal Agents** | `AGENTS.md`, `.agents/` | Appended to `AGENTS.md` catalog |
403
+ | **GitHub Copilot** | `.github/` | `.github/copilot-instructions.md` |
404
+
405
+ To install a skill globally to your user profile instead of the current project, add `--global` (`-g`):
406
+ ```bash
407
+ skillforge install systematic-debugging --global
408
+ ```
409
+
410
+ ---
411
+
412
+ ## 📦 Shipped Built-in Skills (22 Zero-Slop Skills)
413
+
414
+ SkillForge ships with 22 practical engineering skills designed to counteract common agent failure modes identified in benchmark research (SWE-bench, Snyk ToxicSkills, Skill-Inject):
415
+
416
+ ### Code Quality, Security & Performance
417
+ - `supply-chain-sentinel`: Verify package existence, registry age, and run CVE audits (`pip-audit`, `npm audit`) before adding dependencies.
418
+ - `secret-sanitizer`: Pre-commit git diff auditor that prevents API keys, private tokens, and `.env` credentials from leaking.
419
+ - `contract-test-generator`: Property-based testing and contract boundary fuzz tests (Hypothesis, fast-check) to verify algebraic invariants.
420
+ - `blast-radius-containment`: Upstream reference tracing and a strict "file touch budget" before modifying shared code or public APIs.
421
+ - `security-threat-modeler`: Trust-boundary mapping, IDOR/BOLA object-level authorization checks, SSRF validation, and injection sink verification.
422
+ - `performance-profiler`: Baseline-first latency (`p50`/`p95`/`p99`), N+1 query detection, and algorithmic complexity verification before optimizing.
423
+ - `antislop-code`: Comment hygiene and anti-overengineering filters (removes trivial narrative comments, stops speculative generality).
424
+ - `spec-driven-development`: Schema-first API design and red-green verification loops before writing application logic.
425
+ - `zero-downtime-migration`: Four-phase Expand-Contract pattern for non-breaking database schema and API payload evolutions.
426
+
427
+ ### Autonomous Loop Stability & Debugging
428
+ - `systematic-debugging`: Disciplined four-phase diagnosis protocol (Reproduce, Isolate, Hypothesize, Surgical Patch) before touching code.
429
+ - `cognitive-loop-breaker`: Three-strikes circuit breaker that forces a hard `git restore` and hypothesis invalidation when stuck in repetitive edit-fail loops.
430
+ - `flaky-test-isolation`: Stress-reproduction loop (50x iterations) and diagnosis protocol for race conditions, clock skew, and state leakage.
431
+ - `runtime-api-verification`: Interactive signature introspection (`inspect`, `dir()`, compiler definitions) to prevent hallucinated kwargs.
432
+
433
+ ### Context Efficiency & Multi-Agent Operations
434
+ - `skill-architect`: Multi-file progressive disclosure guide (bundled with `references/mechanics.md`) for authoring low-token `SKILL.md`, `AGENTS.md`, and `CLAUDE.md` files.
435
+ - `caveman`: Terse, high-density technical communication mode that reduces token spend while preserving exact paths, commands, and errors.
436
+ - `context-compactor`: Structured state distillation and active hypothesis ledgers for long-running agent threads nearing context limits.
437
+ - `mcp-tool-designer`: Type-safe schema design, idempotent hints, token boundaries, and stderr error separation for MCP servers.
438
+ - `agent-observability`: OpenTelemetry tracing standards, step timing, and 16KB payload truncation boundaries.
439
+ - `human-in-the-loop`: Three-tier permission model separating read-only queries from irreversible actions.
440
+ - `summarize`: Executive engineering summaries with exact file and line citations.
441
+ - `tavily-search`: Authoritative primary-source technical research with cross-verification.
442
+ - `self-improving-agent`: Error recording loop that turns recurring bugs into durable project rules.
443
+
444
+ ---
445
+
446
+ ## 🚀 Community & Contributing
447
+
448
+ - **Distribution:** Published on PyPI as [`agent-skillforge`](https://pypi.org/project/agent-skillforge/).
449
+ - **Launch Playbook:** See [`docs/LAUNCH_PLAYBOOK.md`](docs/LAUNCH_PLAYBOOK.md) for community distribution and launch guidelines.
450
+ - **Development:**
451
+ ```bash
452
+ git clone https://github.com/gintingism/skillforge.git
453
+ cd skillforge
454
+ python -m pip install -e ".[dev]"
455
+ pytest
456
+ mypy src
457
+ ```
458
+
459
+ License: [MIT](LICENSE)