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.
Files changed (53) hide show
  1. {agent_skillforge-0.4.0/src/agent_skillforge.egg-info → agent_skillforge-0.4.1}/PKG-INFO +190 -123
  2. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/README.md +189 -122
  3. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/pyproject.toml +1 -1
  4. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1/src/agent_skillforge.egg-info}/PKG-INFO +190 -123
  5. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/agent_skillforge.egg-info/SOURCES.txt +4 -1
  6. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/__init__.py +1 -1
  7. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/adapters.py +71 -18
  8. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/cli.py +161 -2
  9. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/registry.py +132 -34
  10. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/security.py +22 -9
  11. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/skill.py +1 -0
  12. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/tests/test_adapters.py +3 -1
  13. agent_skillforge-0.4.1/tests/test_badge.py +56 -0
  14. agent_skillforge-0.4.1/tests/test_hardening.py +119 -0
  15. agent_skillforge-0.4.1/tests/test_verify_and_pinning.py +129 -0
  16. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/LICENSE +0 -0
  17. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/setup.cfg +0 -0
  18. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/agent_skillforge.egg-info/dependency_links.txt +0 -0
  19. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/agent_skillforge.egg-info/entry_points.txt +0 -0
  20. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/agent_skillforge.egg-info/requires.txt +0 -0
  21. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/agent_skillforge.egg-info/top_level.txt +0 -0
  22. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/__main__.py +0 -0
  23. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/agent-observability/SKILL.md +0 -0
  24. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/antislop-code/SKILL.md +0 -0
  25. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/blast-radius-containment/SKILL.md +0 -0
  26. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/caveman/SKILL.md +0 -0
  27. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/cognitive-loop-breaker/SKILL.md +0 -0
  28. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/context-compactor/SKILL.md +0 -0
  29. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/contract-test-generator/SKILL.md +0 -0
  30. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/flaky-test-isolation/SKILL.md +0 -0
  31. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/human-in-the-loop/SKILL.md +0 -0
  32. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/mcp-tool-designer/SKILL.md +0 -0
  33. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/performance-profiler/SKILL.md +0 -0
  34. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/runtime-api-verification/SKILL.md +0 -0
  35. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/secret-sanitizer/SKILL.md +0 -0
  36. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/security-threat-modeler/SKILL.md +0 -0
  37. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/self-improving-agent/SKILL.md +0 -0
  38. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/skill-architect/SKILL.md +0 -0
  39. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/skill-architect/references/mechanics.md +0 -0
  40. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/spec-driven-development/SKILL.md +0 -0
  41. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/summarize/SKILL.md +0 -0
  42. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/supply-chain-sentinel/SKILL.md +0 -0
  43. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/systematic-debugging/SKILL.md +0 -0
  44. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/tavily-search/SKILL.md +0 -0
  45. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/builtin_skills/zero-downtime-migration/SKILL.md +0 -0
  46. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/errors.py +0 -0
  47. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/src/skillforge/mcp_server.py +0 -0
  48. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/tests/test_builtins.py +0 -0
  49. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/tests/test_cli.py +0 -0
  50. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/tests/test_mcp_server.py +0 -0
  51. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/tests/test_registry.py +0 -0
  52. {agent_skillforge-0.4.0 → agent_skillforge-0.4.1}/tests/test_security.py +0 -0
  53. {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.0
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
- A package manager and security linter for portable agent skills (`SKILL.md`).
43
+ **Universal package manager, security auditor, and context token profiler for portable AI agent skills (`SKILL.md`).**
42
44
 
43
- If you use Claude Code, Cursor, Google Antigravity, Windsurf, or Copilot, you've probably noticed two problems with agent instructions:
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)
44
50
 
45
- 1. **System prompt bloat:** Dumping every coding guideline, style guide, and workflow directly into your global system prompt burns tokens on every turn and muddles model reasoning.
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
- SkillForge follows the open `SKILL.md` standard (established under the Agentic AI Foundation / AAIF). It gives you a clean way to find, security-audit, install, and bundle skills across whatever coding assistant you or your team use.
53
+ </div>
49
54
 
50
55
  ---
51
56
 
52
- ## Installation
57
+ ## ⚡ 10-Second Quickstart (Zero-Install)
53
58
 
54
- From PyPI:
59
+ No Node.js, npm, or permanent installation required. Run directly with `uvx` or `pipx`:
55
60
 
56
61
  ```bash
57
- pip install agent-skillforge
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
- To run directly as a module if preferred: `python -m skillforge`
75
+ Or install permanently via `pip`:
76
+ ```bash
77
+ pip install agent-skillforge
78
+ ```
61
79
 
62
80
  ---
63
81
 
64
- ## Core Workflows
82
+ ## 💡 Why SkillForge?
65
83
 
66
- ### 1. Grab a skill directly from GitHub (`add`)
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
- Instead of cloning a repo, finding the skill folder, and copying files manually:
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
- ```bash
71
- # Pull a specific skill from a GitHub repo
72
- skillforge add anthropics/skills:pdf
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
- # Or from your own team's repository
75
- skillforge add gintingism/skillforge:systematic-debugging
76
- ```
100
+ ---
101
+
102
+ ## 🛠️ Core Workflows
77
103
 
78
- SkillForge fetches the skill, runs a security check against it, installs it into your project's active assistant folders, and pins its SHA-256 package digest in `skillforge.lock`.
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
- skillforge sync
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: 24 pointer tokens | 280 body tokens (42 lines)
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 (with smart context filters for defensive guides).
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
- - **Data & Environment Exfiltration (SEC-005):** Sending environment variables or secrets to external webhook endpoints (`webhook.site`, `pipedream.net`).
107
- - **Hardcoded Secrets & API Keys (SEC-006):** Detects hardcoded GitHub tokens, Anthropic API keys, Google Cloud keys, and AWS credentials.
108
- - **Trigger Quality (QUAL-001):** Checks whether model-invoked descriptions contain explicit activation conditions (skipped when `disable-model-invocation: true`).
109
- - **Directory Alignment (QUAL-002):** Verifies the package folder name matches the skill `name` in YAML frontmatter.
110
- - **Progressive Disclosure Budget (QUAL-003):** Flags `SKILL.md` bodies exceeding 500 lines or ~5,000 tokens so heavy reference docs are moved into `references/`.
111
- - **Broken Disclosure Pointers (QUAL-004):** Verifies every `references/...` or `scripts/...` file cited in `SKILL.md` actually exists in the package.
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. Run a full environment diagnostic (`doctor`)
156
+ ### 3. Profile your project's context token budget (`budget`)
120
157
 
121
- Inspect all installed skills across your project or global workstation (Claude Code, Cursor, Antigravity, Windsurf) for security vulnerabilities, context window load, and broken pointers:
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
- # Diagnose active project
125
- skillforge doctor
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
- # Diagnose all global machine skills
128
- skillforge doctor --global
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
+ [![Audited by SkillForge](https://img.shields.io/badge/SkillForge-Security%20Passed%20100%2F100-2ea44f?logo=shield&style=flat-square)](https://github.com/gintingism/skillforge)
129
181
  ```
130
182
 
131
- ### 4. Compare changes before updating (`diff`)
183
+ ### 5. Grab a skill directly from GitHub (`add`)
132
184
 
133
- Inspect diffs between local skills and upstream repositories, or compare two skill versions:
185
+ Pull skills directly from remote Git repositories with security auditing and reproducible commit pinning:
134
186
 
135
187
  ```bash
136
- skillforge diff ./skills/my-skill
137
- skillforge diff my-skill gintingism/skillforge:my-skill
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
- ### 5. Profile your project's context token budget (`budget`)
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
- 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:
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
- skillforge budget
146
- # Or inspect the built-in catalog:
147
- skillforge budget --builtin
205
+ # Verify active project
206
+ skillforge verify
207
+
208
+ # Output JSON for CI automation
209
+ skillforge verify --json
148
210
  ```
149
211
  ```text
150
- Context Budget Profile (22 skills)
151
- Always-Loaded Startup Pointer Cost: ~1280 tokens
152
- On-Demand SKILL.md Body Cost: ~7450 tokens
153
- Disclosed Resources Cost: ~349 tokens
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
- ### 6. Check what's installed in your project (`list` & `remove`)
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
- ### 5. Create and package your own skills (`create` & `pack`)
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
- ## Supported Assistants
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 automatically detects which assistants your repository uses and places the skill files in the right folder:
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 home directory instead of the current project, add `--global` (`-g`):
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
- ## Model Context Protocol (MCP) Integration
254
-
255
- SkillForge can run as an MCP server so your agent can search, read, and audit skills during its workflow:
256
-
257
- ```json
258
- {
259
- "mcpServers": {
260
- "skillforge": {
261
- "command": "skillforge",
262
- "args": ["serve-mcp"],
263
- "env": {
264
- "SKILLFORGE_REGISTRY_PATH": ".skillforge"
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)