agent-skillforge 0.1.0__tar.gz → 0.2.0__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 (59) hide show
  1. agent_skillforge-0.2.0/PKG-INFO +265 -0
  2. agent_skillforge-0.2.0/README.md +227 -0
  3. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/pyproject.toml +29 -8
  4. agent_skillforge-0.2.0/src/agent_skillforge.egg-info/PKG-INFO +265 -0
  5. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/src/agent_skillforge.egg-info/SOURCES.txt +11 -0
  6. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/src/agent_skillforge.egg-info/requires.txt +2 -0
  7. agent_skillforge-0.2.0/src/skillforge/adapters.py +330 -0
  8. agent_skillforge-0.2.0/src/skillforge/builtin_skills/agent-observability/SKILL.md +25 -0
  9. agent_skillforge-0.2.0/src/skillforge/builtin_skills/antislop-code/SKILL.md +37 -0
  10. agent_skillforge-0.2.0/src/skillforge/builtin_skills/blast-radius-containment/SKILL.md +33 -0
  11. agent_skillforge-0.2.0/src/skillforge/builtin_skills/caveman/SKILL.md +24 -0
  12. agent_skillforge-0.2.0/src/skillforge/builtin_skills/cognitive-loop-breaker/SKILL.md +44 -0
  13. agent_skillforge-0.2.0/src/skillforge/builtin_skills/context-compactor/SKILL.md +30 -0
  14. agent_skillforge-0.2.0/src/skillforge/builtin_skills/flaky-test-isolation/SKILL.md +44 -0
  15. agent_skillforge-0.2.0/src/skillforge/builtin_skills/human-in-the-loop/SKILL.md +26 -0
  16. agent_skillforge-0.2.0/src/skillforge/builtin_skills/mcp-tool-designer/SKILL.md +28 -0
  17. agent_skillforge-0.2.0/src/skillforge/builtin_skills/runtime-api-verification/SKILL.md +45 -0
  18. agent_skillforge-0.2.0/src/skillforge/builtin_skills/self-improving-agent/SKILL.md +24 -0
  19. agent_skillforge-0.2.0/src/skillforge/builtin_skills/spec-driven-development/SKILL.md +25 -0
  20. agent_skillforge-0.2.0/src/skillforge/builtin_skills/summarize/SKILL.md +20 -0
  21. agent_skillforge-0.2.0/src/skillforge/builtin_skills/systematic-debugging/SKILL.md +37 -0
  22. agent_skillforge-0.2.0/src/skillforge/builtin_skills/tavily-search/SKILL.md +23 -0
  23. agent_skillforge-0.2.0/src/skillforge/builtin_skills/zero-downtime-migration/SKILL.md +42 -0
  24. agent_skillforge-0.2.0/src/skillforge/cli.py +311 -0
  25. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/src/skillforge/errors.py +4 -0
  26. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/src/skillforge/mcp_server.py +12 -2
  27. agent_skillforge-0.2.0/src/skillforge/registry.py +304 -0
  28. agent_skillforge-0.2.0/src/skillforge/security.py +304 -0
  29. agent_skillforge-0.2.0/src/skillforge/skill.py +252 -0
  30. agent_skillforge-0.2.0/tests/test_adapters.py +88 -0
  31. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/tests/test_builtins.py +16 -0
  32. agent_skillforge-0.2.0/tests/test_cli.py +179 -0
  33. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/tests/test_mcp_server.py +3 -1
  34. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/tests/test_registry.py +34 -2
  35. agent_skillforge-0.2.0/tests/test_security.py +64 -0
  36. agent_skillforge-0.1.0/PKG-INFO +0 -84
  37. agent_skillforge-0.1.0/README.md +0 -54
  38. agent_skillforge-0.1.0/src/agent_skillforge.egg-info/PKG-INFO +0 -84
  39. agent_skillforge-0.1.0/src/skillforge/adapters.py +0 -80
  40. agent_skillforge-0.1.0/src/skillforge/builtin_skills/agent-observability/SKILL.md +0 -19
  41. agent_skillforge-0.1.0/src/skillforge/builtin_skills/caveman/SKILL.md +0 -22
  42. agent_skillforge-0.1.0/src/skillforge/builtin_skills/human-in-the-loop/SKILL.md +0 -15
  43. agent_skillforge-0.1.0/src/skillforge/builtin_skills/self-improving-agent/SKILL.md +0 -15
  44. agent_skillforge-0.1.0/src/skillforge/builtin_skills/spec-driven-development/SKILL.md +0 -15
  45. agent_skillforge-0.1.0/src/skillforge/builtin_skills/summarize/SKILL.md +0 -17
  46. agent_skillforge-0.1.0/src/skillforge/builtin_skills/tavily-search/SKILL.md +0 -19
  47. agent_skillforge-0.1.0/src/skillforge/cli.py +0 -107
  48. agent_skillforge-0.1.0/src/skillforge/registry.py +0 -151
  49. agent_skillforge-0.1.0/src/skillforge/skill.py +0 -76
  50. agent_skillforge-0.1.0/tests/test_adapters.py +0 -42
  51. agent_skillforge-0.1.0/tests/test_cli.py +0 -79
  52. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/LICENSE +0 -0
  53. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/setup.cfg +0 -0
  54. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/src/agent_skillforge.egg-info/dependency_links.txt +0 -0
  55. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/src/agent_skillforge.egg-info/entry_points.txt +0 -0
  56. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/src/agent_skillforge.egg-info/top_level.txt +0 -0
  57. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/src/skillforge/__init__.py +0 -0
  58. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/src/skillforge/__main__.py +0 -0
  59. {agent_skillforge-0.1.0 → agent_skillforge-0.2.0}/tests/test_skill.py +0 -0
@@ -0,0 +1,265 @@
1
+ Metadata-Version: 2.4
2
+ Name: agent-skillforge
3
+ Version: 0.2.0
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
+ # SkillForge
40
+
41
+ A package manager and security linter for portable agent skills (`SKILL.md`).
42
+
43
+ If you use Claude Code, Cursor, Google Antigravity, Windsurf, or Copilot, you've probably noticed two problems with agent instructions:
44
+
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.
47
+
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.
49
+
50
+ ---
51
+
52
+ ## Installation
53
+
54
+ From PyPI:
55
+
56
+ ```bash
57
+ pip install agent-skillforge
58
+ ```
59
+
60
+ To run directly as a module if preferred: `python -m skillforge`
61
+
62
+ ---
63
+
64
+ ## Core Workflows
65
+
66
+ ### 1. Grab a skill directly from GitHub (`add`)
67
+
68
+ Instead of cloning a repo, finding the skill folder, and copying files manually:
69
+
70
+ ```bash
71
+ # Pull a specific skill from a GitHub repo
72
+ skillforge add anthropics/skills:pdf
73
+
74
+ # Or from your own team's repository
75
+ skillforge add gintingism/skillforge:systematic-debugging
76
+ ```
77
+
78
+ SkillForge fetches the skill, runs a security check against it, installs it into your project's active assistant folders, and pins it in `skillforge.lock`.
79
+
80
+ ### 2. Audit a skill before running it (`audit`)
81
+
82
+ Before letting an agent read and execute a skill, inspect it for hidden payloads and prompt injection:
83
+
84
+ ```bash
85
+ skillforge audit ./skills/my-new-skill
86
+ ```
87
+
88
+ Example output:
89
+ ```text
90
+ Audit Report: my-new-skill
91
+ Status: PASSED (Score: 100/100)
92
+ Total Findings: 0
93
+ ```
94
+
95
+ What the auditor scans for:
96
+ - **Invisible Unicode (SEC-001):** Zero-width spaces (`\u200B`, `\uFEFF`), homoglyphs, and directional overrides used to hide prompt instructions from human code review.
97
+ - **Prompt Injections & Jailbreaks (SEC-002):** Directives like `"ignore previous instructions"`, `"system override"`, or attempts to disable safety guardrails.
98
+ - **Dangerous Shell Commands (SEC-003):** Script patterns like `curl ... | bash`, base64-decoded execution, and outbound data exfiltration.
99
+ - **Credential Path Access (SEC-004):** Unsanctioned attempts to access `~/.ssh`, `~/.aws/credentials`, or local environment secrets.
100
+ - **Trigger Quality (QUAL-001):** Checks whether descriptions contain explicit activation conditions for progressive disclosure.
101
+
102
+ For CI pipelines, pass `--strict` to fail on any warning, or `--json` for automation:
103
+ ```bash
104
+ skillforge audit ./skills/my-new-skill --strict --json
105
+ ```
106
+
107
+ ### 3. Check what's installed in your project (`list` & `remove`)
108
+
109
+ See which skills are active across your editor targets:
110
+
111
+ ```bash
112
+ skillforge list
113
+ ```
114
+ ```text
115
+ Installed Skills:
116
+ [ClaudeCode]:
117
+ - antislop-code
118
+ - systematic-debugging
119
+ [Cursor]:
120
+ - antislop-code
121
+ - systematic-debugging
122
+ ```
123
+
124
+ To remove a skill from all detected assistants and update your lockfile:
125
+ ```bash
126
+ skillforge remove antislop-code
127
+ ```
128
+
129
+ ### 4. Create and package your own skills (`create` & `pack`)
130
+
131
+ Scaffold a single skill file or a full directory package with scripts and reference docs:
132
+
133
+ ```bash
134
+ # Standard skill file
135
+ skillforge create api-design -d "Design REST/gRPC APIs. Use when creating new backend endpoints."
136
+
137
+ # Full package with scripts/ and references/
138
+ skillforge create db-migrator -d "Run Postgres migrations safely. Use when writing SQL schema updates." --full
139
+ ```
140
+
141
+ Pack it into a shareable zip archive (or unpack one safely with path traversal protection):
142
+ ```bash
143
+ skillforge pack ./db-migrator --output ./db-migrator.zip
144
+ skillforge unpack ./db-migrator.zip --output ./skills
145
+ ```
146
+
147
+ ---
148
+
149
+ ## Supported Assistants
150
+
151
+ SkillForge automatically detects which assistants your repository uses and places the skill files in the right folder:
152
+
153
+ | Assistant | Detected by | Installed location |
154
+ | :--- | :--- | :--- |
155
+ | **Google Antigravity / Gemini CLI** | `.gemini/` | `.gemini/config/skills/<name>/SKILL.md` |
156
+ | **Claude Code & Claude Desktop** | `.claude/` | `.claude/skills/<name>/SKILL.md` |
157
+ | **Cursor** | `.cursor/` | `.cursor/skills/<name>/SKILL.md` |
158
+ | **Windsurf** | `.windsurf/`, `.windsurfrules` | `.windsurf/skills/<name>/SKILL.md` |
159
+ | **Cline / Roo-Code** | `.cline/`, `.roomodes` | `.cline/skills/<name>/SKILL.md` |
160
+ | **Codex / Universal Agents** | `AGENTS.md`, `.agents/` | Appended to `AGENTS.md` catalog |
161
+ | **GitHub Copilot** | `.github/` | `.github/copilot-instructions.md` |
162
+
163
+ To install a skill to your user home directory instead of the current project, add `--global` (`-g`):
164
+ ```bash
165
+ skillforge install systematic-debugging --global
166
+ ```
167
+
168
+ ---
169
+
170
+ ## Shipped Built-in Skills
171
+
172
+ SkillForge ships with 16 practical engineering skills designed to counteract common agent failure modes identified in benchmark research (SWE-bench):
173
+
174
+ ### Code Quality & Architectural Boundaries
175
+ - `blast-radius-containment`: Upstream reference tracing and a strict "file touch budget" before modifying shared code or public APIs.
176
+ - `antislop-code`: Comment hygiene and anti-overengineering filters (removes trivial narrative comments, stops speculative generality).
177
+ - `spec-driven-development`: Schema-first API design and red-green verification loops before writing application logic.
178
+ - `zero-downtime-migration`: Four-phase Expand-Contract pattern for non-breaking database schema and API payload evolutions.
179
+
180
+ ### Autonomous Loop Stability & Debugging
181
+ - `systematic-debugging`: Disciplined four-phase diagnosis protocol (Reproduce, Isolate, Hypothesize, Surgical Patch) before touching code.
182
+ - `cognitive-loop-breaker`: Three-strikes circuit breaker that forces a hard `git restore` and hypothesis invalidation when stuck in repetitive edit-fail loops.
183
+ - `flaky-test-isolation`: Stress-reproduction loop (50x iterations) and diagnosis protocol for race conditions, clock skew, and state leakage.
184
+ - `runtime-api-verification`: Interactive signature introspection (`inspect`, `dir()`, compiler definitions) to prevent hallucinated kwargs.
185
+
186
+ ### Context Efficiency & Multi-Agent Operations
187
+ - `caveman`: Terse, high-density technical communication mode that reduces token spend while preserving exact paths, commands, and errors.
188
+ - `context-compactor`: Structured state distillation and active hypothesis ledgers for long-running agent threads nearing context limits.
189
+ - `mcp-tool-designer`: Type-safe schema design, idempotent hints, token boundaries, and stderr error separation for MCP servers.
190
+ - `agent-observability`: OpenTelemetry tracing standards, step timing, and 16KB payload truncation boundaries.
191
+ - `human-in-the-loop`: Three-tier permission model separating read-only queries from irreversible actions.
192
+ - `summarize`: Executive engineering summaries with exact file and line citations.
193
+ - `tavily-search`: Authoritative primary-source technical research with cross-verification.
194
+ - `self-improving-agent`: Error recording loop that turns recurring bugs into durable project rules.
195
+
196
+ ---
197
+
198
+ ## Model Context Protocol (MCP) Integration
199
+
200
+ SkillForge can run as an MCP server so your agent can search, read, and audit skills during its workflow:
201
+
202
+ ```json
203
+ {
204
+ "mcpServers": {
205
+ "skillforge": {
206
+ "command": "skillforge",
207
+ "args": ["serve-mcp"],
208
+ "env": {
209
+ "SKILLFORGE_REGISTRY_PATH": ".skillforge"
210
+ }
211
+ }
212
+ }
213
+ }
214
+ ```
215
+
216
+ Exposed MCP tools:
217
+ - `search_skills(query, limit)`: Search local and built-in skill catalogs.
218
+ - `get_skill(name)`: Read the full `SKILL.md` instructions.
219
+ - `validate_skill(content)`: Test frontmatter syntax.
220
+ - `audit_skill(content)`: Audit a raw skill document for prompt injections and malicious patterns.
221
+ - `skill://{name}`: Resource URI for direct document retrieval.
222
+
223
+ ---
224
+
225
+ ## Publishing to PyPI
226
+
227
+ SkillForge is published to PyPI under the package name `agent-skillforge`.
228
+
229
+ ### Prerequisites for GitHub Actions Deployment
230
+ 1. Ensure your repository has Trusted Publishing configured on [PyPI](https://pypi.org/manage/account/publishing/):
231
+ - **PyPI Project Name:** `agent-skillforge`
232
+ - **Owner:** `gintingism`
233
+ - **Repository:** `skillforge`
234
+ - **Workflow name:** `publish.yml`
235
+ - **Environment:** `pypi`
236
+ 2. Bump the version in `pyproject.toml` (e.g. `0.2.0`).
237
+
238
+ ### Triggering a Release
239
+ You can publish through any of these three methods:
240
+ - **Git tag:** `git tag v0.2.0 && git push origin v0.2.0`
241
+ - **GitHub Release:** Publish a new release in the GitHub UI.
242
+ - **Manual dispatch:** Go to the GitHub Actions tab → "Publish package" → click "Run workflow".
243
+
244
+ ### Local build check
245
+ To test building distributions locally before releasing:
246
+ ```bash
247
+ python -m pip install --upgrade build twine
248
+ python -m build
249
+ python -m twine check dist/*
250
+ ```
251
+
252
+ ---
253
+
254
+ ## Contributing & Development
255
+
256
+ ```bash
257
+ git clone https://github.com/gintingism/skillforge.git
258
+ cd skillforge
259
+
260
+ python -m pip install -e ".[dev]"
261
+ pytest
262
+ mypy src
263
+ ```
264
+
265
+ License: [MIT](LICENSE)
@@ -0,0 +1,227 @@
1
+ # SkillForge
2
+
3
+ A package manager and security linter for portable agent skills (`SKILL.md`).
4
+
5
+ If you use Claude Code, Cursor, Google Antigravity, Windsurf, or Copilot, you've probably noticed two problems with agent instructions:
6
+
7
+ 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.
8
+ 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.
9
+
10
+ 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.
11
+
12
+ ---
13
+
14
+ ## Installation
15
+
16
+ From PyPI:
17
+
18
+ ```bash
19
+ pip install agent-skillforge
20
+ ```
21
+
22
+ To run directly as a module if preferred: `python -m skillforge`
23
+
24
+ ---
25
+
26
+ ## Core Workflows
27
+
28
+ ### 1. Grab a skill directly from GitHub (`add`)
29
+
30
+ Instead of cloning a repo, finding the skill folder, and copying files manually:
31
+
32
+ ```bash
33
+ # Pull a specific skill from a GitHub repo
34
+ skillforge add anthropics/skills:pdf
35
+
36
+ # Or from your own team's repository
37
+ skillforge add gintingism/skillforge:systematic-debugging
38
+ ```
39
+
40
+ SkillForge fetches the skill, runs a security check against it, installs it into your project's active assistant folders, and pins it in `skillforge.lock`.
41
+
42
+ ### 2. Audit a skill before running it (`audit`)
43
+
44
+ Before letting an agent read and execute a skill, inspect it for hidden payloads and prompt injection:
45
+
46
+ ```bash
47
+ skillforge audit ./skills/my-new-skill
48
+ ```
49
+
50
+ Example output:
51
+ ```text
52
+ Audit Report: my-new-skill
53
+ Status: PASSED (Score: 100/100)
54
+ Total Findings: 0
55
+ ```
56
+
57
+ What the auditor scans for:
58
+ - **Invisible Unicode (SEC-001):** Zero-width spaces (`\u200B`, `\uFEFF`), homoglyphs, and directional overrides used to hide prompt instructions from human code review.
59
+ - **Prompt Injections & Jailbreaks (SEC-002):** Directives like `"ignore previous instructions"`, `"system override"`, or attempts to disable safety guardrails.
60
+ - **Dangerous Shell Commands (SEC-003):** Script patterns like `curl ... | bash`, base64-decoded execution, and outbound data exfiltration.
61
+ - **Credential Path Access (SEC-004):** Unsanctioned attempts to access `~/.ssh`, `~/.aws/credentials`, or local environment secrets.
62
+ - **Trigger Quality (QUAL-001):** Checks whether descriptions contain explicit activation conditions for progressive disclosure.
63
+
64
+ For CI pipelines, pass `--strict` to fail on any warning, or `--json` for automation:
65
+ ```bash
66
+ skillforge audit ./skills/my-new-skill --strict --json
67
+ ```
68
+
69
+ ### 3. Check what's installed in your project (`list` & `remove`)
70
+
71
+ See which skills are active across your editor targets:
72
+
73
+ ```bash
74
+ skillforge list
75
+ ```
76
+ ```text
77
+ Installed Skills:
78
+ [ClaudeCode]:
79
+ - antislop-code
80
+ - systematic-debugging
81
+ [Cursor]:
82
+ - antislop-code
83
+ - systematic-debugging
84
+ ```
85
+
86
+ To remove a skill from all detected assistants and update your lockfile:
87
+ ```bash
88
+ skillforge remove antislop-code
89
+ ```
90
+
91
+ ### 4. Create and package your own skills (`create` & `pack`)
92
+
93
+ Scaffold a single skill file or a full directory package with scripts and reference docs:
94
+
95
+ ```bash
96
+ # Standard skill file
97
+ skillforge create api-design -d "Design REST/gRPC APIs. Use when creating new backend endpoints."
98
+
99
+ # Full package with scripts/ and references/
100
+ skillforge create db-migrator -d "Run Postgres migrations safely. Use when writing SQL schema updates." --full
101
+ ```
102
+
103
+ Pack it into a shareable zip archive (or unpack one safely with path traversal protection):
104
+ ```bash
105
+ skillforge pack ./db-migrator --output ./db-migrator.zip
106
+ skillforge unpack ./db-migrator.zip --output ./skills
107
+ ```
108
+
109
+ ---
110
+
111
+ ## Supported Assistants
112
+
113
+ SkillForge automatically detects which assistants your repository uses and places the skill files in the right folder:
114
+
115
+ | Assistant | Detected by | Installed location |
116
+ | :--- | :--- | :--- |
117
+ | **Google Antigravity / Gemini CLI** | `.gemini/` | `.gemini/config/skills/<name>/SKILL.md` |
118
+ | **Claude Code & Claude Desktop** | `.claude/` | `.claude/skills/<name>/SKILL.md` |
119
+ | **Cursor** | `.cursor/` | `.cursor/skills/<name>/SKILL.md` |
120
+ | **Windsurf** | `.windsurf/`, `.windsurfrules` | `.windsurf/skills/<name>/SKILL.md` |
121
+ | **Cline / Roo-Code** | `.cline/`, `.roomodes` | `.cline/skills/<name>/SKILL.md` |
122
+ | **Codex / Universal Agents** | `AGENTS.md`, `.agents/` | Appended to `AGENTS.md` catalog |
123
+ | **GitHub Copilot** | `.github/` | `.github/copilot-instructions.md` |
124
+
125
+ To install a skill to your user home directory instead of the current project, add `--global` (`-g`):
126
+ ```bash
127
+ skillforge install systematic-debugging --global
128
+ ```
129
+
130
+ ---
131
+
132
+ ## Shipped Built-in Skills
133
+
134
+ SkillForge ships with 16 practical engineering skills designed to counteract common agent failure modes identified in benchmark research (SWE-bench):
135
+
136
+ ### Code Quality & Architectural Boundaries
137
+ - `blast-radius-containment`: Upstream reference tracing and a strict "file touch budget" before modifying shared code or public APIs.
138
+ - `antislop-code`: Comment hygiene and anti-overengineering filters (removes trivial narrative comments, stops speculative generality).
139
+ - `spec-driven-development`: Schema-first API design and red-green verification loops before writing application logic.
140
+ - `zero-downtime-migration`: Four-phase Expand-Contract pattern for non-breaking database schema and API payload evolutions.
141
+
142
+ ### Autonomous Loop Stability & Debugging
143
+ - `systematic-debugging`: Disciplined four-phase diagnosis protocol (Reproduce, Isolate, Hypothesize, Surgical Patch) before touching code.
144
+ - `cognitive-loop-breaker`: Three-strikes circuit breaker that forces a hard `git restore` and hypothesis invalidation when stuck in repetitive edit-fail loops.
145
+ - `flaky-test-isolation`: Stress-reproduction loop (50x iterations) and diagnosis protocol for race conditions, clock skew, and state leakage.
146
+ - `runtime-api-verification`: Interactive signature introspection (`inspect`, `dir()`, compiler definitions) to prevent hallucinated kwargs.
147
+
148
+ ### Context Efficiency & Multi-Agent Operations
149
+ - `caveman`: Terse, high-density technical communication mode that reduces token spend while preserving exact paths, commands, and errors.
150
+ - `context-compactor`: Structured state distillation and active hypothesis ledgers for long-running agent threads nearing context limits.
151
+ - `mcp-tool-designer`: Type-safe schema design, idempotent hints, token boundaries, and stderr error separation for MCP servers.
152
+ - `agent-observability`: OpenTelemetry tracing standards, step timing, and 16KB payload truncation boundaries.
153
+ - `human-in-the-loop`: Three-tier permission model separating read-only queries from irreversible actions.
154
+ - `summarize`: Executive engineering summaries with exact file and line citations.
155
+ - `tavily-search`: Authoritative primary-source technical research with cross-verification.
156
+ - `self-improving-agent`: Error recording loop that turns recurring bugs into durable project rules.
157
+
158
+ ---
159
+
160
+ ## Model Context Protocol (MCP) Integration
161
+
162
+ SkillForge can run as an MCP server so your agent can search, read, and audit skills during its workflow:
163
+
164
+ ```json
165
+ {
166
+ "mcpServers": {
167
+ "skillforge": {
168
+ "command": "skillforge",
169
+ "args": ["serve-mcp"],
170
+ "env": {
171
+ "SKILLFORGE_REGISTRY_PATH": ".skillforge"
172
+ }
173
+ }
174
+ }
175
+ }
176
+ ```
177
+
178
+ Exposed MCP tools:
179
+ - `search_skills(query, limit)`: Search local and built-in skill catalogs.
180
+ - `get_skill(name)`: Read the full `SKILL.md` instructions.
181
+ - `validate_skill(content)`: Test frontmatter syntax.
182
+ - `audit_skill(content)`: Audit a raw skill document for prompt injections and malicious patterns.
183
+ - `skill://{name}`: Resource URI for direct document retrieval.
184
+
185
+ ---
186
+
187
+ ## Publishing to PyPI
188
+
189
+ SkillForge is published to PyPI under the package name `agent-skillforge`.
190
+
191
+ ### Prerequisites for GitHub Actions Deployment
192
+ 1. Ensure your repository has Trusted Publishing configured on [PyPI](https://pypi.org/manage/account/publishing/):
193
+ - **PyPI Project Name:** `agent-skillforge`
194
+ - **Owner:** `gintingism`
195
+ - **Repository:** `skillforge`
196
+ - **Workflow name:** `publish.yml`
197
+ - **Environment:** `pypi`
198
+ 2. Bump the version in `pyproject.toml` (e.g. `0.2.0`).
199
+
200
+ ### Triggering a Release
201
+ You can publish through any of these three methods:
202
+ - **Git tag:** `git tag v0.2.0 && git push origin v0.2.0`
203
+ - **GitHub Release:** Publish a new release in the GitHub UI.
204
+ - **Manual dispatch:** Go to the GitHub Actions tab → "Publish package" → click "Run workflow".
205
+
206
+ ### Local build check
207
+ To test building distributions locally before releasing:
208
+ ```bash
209
+ python -m pip install --upgrade build twine
210
+ python -m build
211
+ python -m twine check dist/*
212
+ ```
213
+
214
+ ---
215
+
216
+ ## Contributing & Development
217
+
218
+ ```bash
219
+ git clone https://github.com/gintingism/skillforge.git
220
+ cd skillforge
221
+
222
+ python -m pip install -e ".[dev]"
223
+ pytest
224
+ mypy src
225
+ ```
226
+
227
+ License: [MIT](LICENSE)
@@ -4,18 +4,36 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agent-skillforge"
7
- version = "0.1.0"
8
- description = "Portable SKILL.md registry, adapters, CLI, and MCP server."
7
+ version = "0.2.0"
8
+ description = "Universal package manager, security auditor, and MCP server for portable agent skills (SKILL.md)."
9
9
  readme = "README.md"
10
10
  license = "MIT"
11
11
  authors = [
12
12
  { name = "gintingism", email = "gintingism@users.noreply.github.com" },
13
13
  ]
14
- keywords = ["skills", "mcp", "copilot", "claude", "developer-tools"]
14
+ keywords = [
15
+ "agent-skills",
16
+ "skills",
17
+ "agentskills",
18
+ "mcp",
19
+ "claude-code",
20
+ "cursor",
21
+ "antigravity",
22
+ "windsurf",
23
+ "security-audit",
24
+ "prompt-injection",
25
+ "developer-tools",
26
+ ]
15
27
  classifiers = [
16
- "Development Status :: 3 - Alpha",
28
+ "Development Status :: 4 - Beta",
29
+ "Environment :: Console",
30
+ "Intended Audience :: Developers",
17
31
  "Programming Language :: Python :: 3",
18
32
  "Programming Language :: Python :: 3 :: Only",
33
+ "Programming Language :: Python :: 3.11",
34
+ "Programming Language :: Python :: 3.12",
35
+ "Topic :: Security",
36
+ "Topic :: Software Development :: Build Tools",
19
37
  "Topic :: Software Development :: Libraries",
20
38
  ]
21
39
  requires-python = ">=3.11"
@@ -27,9 +45,11 @@ dependencies = [
27
45
 
28
46
  [project.optional-dependencies]
29
47
  dev = [
48
+ "build>=1.0",
30
49
  "mypy>=1.10",
31
50
  "pytest>=8.0",
32
51
  "pytest-cov>=5.0",
52
+ "twine>=5.0",
33
53
  "types-PyYAML>=6.0",
34
54
  ]
35
55
  docs = [
@@ -49,7 +69,11 @@ Documentation = "https://gintingism.github.io/skillforge/"
49
69
  where = ["src"]
50
70
 
51
71
  [tool.setuptools.package-data]
52
- skillforge = ["builtin_skills/*/SKILL.md"]
72
+ skillforge = [
73
+ "builtin_skills/*/SKILL.md",
74
+ "builtin_skills/*/*",
75
+ "builtin_skills/*/*/*",
76
+ ]
53
77
 
54
78
  [tool.pytest.ini_options]
55
79
  testpaths = ["tests"]
@@ -58,6 +82,3 @@ addopts = "-q"
58
82
  [tool.mypy]
59
83
  strict = true
60
84
  packages = ["skillforge"]
61
-
62
- [tool.coverage.report]
63
- fail_under = 80