#956 by GitHub stars
tripleyak/SkillForge
A skill creator that proves its skills work. Evidence-driven skill creation for Claude Code and Codex: baseline-tested generation, per-skill regression evals, ecosystem doctor, cross-runtime compile, and an opt-in proactive advisor.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
4fc8bb486aa8 → 4fc8bb486aa8
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 4fc8bb486aa8
No earlier version was observed for comparison.
scripts/tests/fixtures/sample-skill/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
4fc8bb486aa8 → 4fc8bb486aa8
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 4fc8bb486aa8
No earlier version was observed for comparison.
Heat
2.2- Star growth, last 7 daysAhead of 51% of tracked repositories
- Star growth, last 24 hoursAhead of 2% of tracked repositories
- Rank movement, last 7 daysAhead of 11% of tracked repositories
- Commits, last 30 daysAhead of 0% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- skillforge
/ - sample-skill
scripts/tests/fixtures/sample-skill
How it works
skillforge
When your agent uses it
Use when creating, improving, finding, or auditing agent skills - the user says 'create a skill', 'do I have a skill for X', 'improve the X skill', 'which skill should I use', asks whether a skill exists for a task, or wants to validate, test, evaluate, package, or health-check skills. Also use for skill ecosystem maintenance (duplicate detection, stale skills, trigger collisions) and advisor checkpoints.
What it loads into context
Frontmatter
177 tokensAlways available to the agent
SKILL.md
2,079 tokensWhen the skill is activated
Reference documents
31,431 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Routing (Phase 0)
- Creation pipeline
- Frontmatter and platform facts
- Ecosystem maintenance
- Context Skill Advisor
- Script inventory
- Anti-patterns
- Verification checklist
Scripts executed separately
assets/templates/script-template.pyscripts/_constants.pyscripts/advisor_scoring.pyscripts/check_docs_safety.pyscripts/common.pyscripts/compile_skill.pyscripts/context_advisor.pyscripts/context_sources.pyscripts/discover_skills.pyscripts/frontmatter.pyscripts/hooks/session_start.pyscripts/hooks/user_prompt_submit.pyscripts/init_skill.pyscripts/install_skillforge.pyscripts/install_workshop.shscripts/mine_skill_friction.pyscripts/package_skill.pyscripts/quick_validate.pyscripts/run_skill_evals.pyscripts/skillforge_config.pyscripts/skillforge_doctor.pyscripts/tests/test_compile.pyscripts/tests/test_config_installer.pyscripts/tests/test_config_privacy.pyscripts/tests/test_context_advisor.pyscripts/tests/test_discovery.pyscripts/tests/test_doctor.pyscripts/tests/test_friction.pyscripts/tests/test_frontmatter.pyscripts/tests/test_hooks.pyscripts/tests/test_init_skill.pyscripts/tests/test_package_skill_ignore.pyscripts/tests/test_run_skill_evals.pyscripts/tests/test_triage.pyscripts/tests/test_validate_skill.pyscripts/triage_skill_request.pyscripts/validate-skill.pyscripts/validate_skill.py
Files
.gitignoreasset541 bytes.skillignoreasset289 bytesCONTEXT.mddoc8,829 bytesLICENSEasset1,056 bytesREADME.mddoc5,291 bytesSKILL.mdcore9,162 bytesSKILL.mdcore9,162 bytesSKILL.mdcore9,162 bytesSKILL.mdcore9,162 bytesSKILLFORGE_AUDIT.mddoc22,450 bytesassets/images/01-title.pngasset1,224,996 bytesassets/images/02-quality-gap.pngasset1,226,842 bytesassets/images/03-quality-built-in.pngasset1,340,304 bytesassets/images/04-four-phase-architecture.pngasset996,482 bytesassets/images/05-phase1-thinking-lenses.pngasset846,459 bytesassets/images/06-phases-2-3.pngasset808,076 bytesassets/images/07-phase4-synthesis.pngasset770,963 bytesassets/images/08-evolution-mandate.pngasset883,769 bytesassets/images/09-core-principles.pngasset921,768 bytesassets/images/10-agentic-capabilities.pngasset1,086,684 bytesassets/images/11-directory-structure.pngasset1,019,432 bytesassets/images/12-installation.pngasset859,861 bytesassets/images/13-closing.pngasset1,209,017 bytesassets/templates/github-workflow-skill-ci.ymlasset4,366 bytesassets/templates/script-template.pyruns8,813 bytesassets/templates/skill-md-template.mddoc1,419 bytescommands/skillforge.mddoc1,389 bytesdocs/adr/0001-proactive-context-skill-advisor.mddoc2,297 bytesdocs/adr/0002-hooks-based-advisor.mddoc5,700 bytesindex.htmlasset71,304 bytesreferences/claude-code-frontmatter.mddoc3,294 bytesreferences/degrees-of-freedom.mddoc4,284 bytesreferences/evolution-scoring.mddoc9,037 bytesreferences/iteration-guide.mddoc3,745 bytesreferences/multi-lens-framework.mddoc10,590 bytesreferences/regression-questions.mddoc11,410 bytesreferences/script-integration-framework.mddoc17,416 bytesreferences/script-patterns-catalog.mddoc21,550 bytesreferences/specification-template.mddoc2,769 bytesreferences/synthesis-protocol.mddoc3,664 bytesreferences/testing-and-evals.mddoc5,583 bytesscripts/_constants.pyruns8,516 bytesscripts/advisor_scoring.pyruns17,845 bytesscripts/check_docs_safety.pyruns2,597 bytesscripts/common.pyruns1,763 bytesscripts/compile_skill.pyruns11,541 bytesscripts/context_advisor.pyruns13,510 bytesscripts/context_sources.pyruns11,620 bytesscripts/discover_skills.pyruns15,177 bytesscripts/frontmatter.pyruns15,811 bytesscripts/hooks/session_start.pyruns4,510 bytesscripts/hooks/user_prompt_submit.pyruns6,442 bytesscripts/init_skill.pyruns12,816 bytesscripts/install_skillforge.pyruns14,641 bytesscripts/install_workshop.shruns6,074 bytesscripts/mine_skill_friction.pyruns16,027 bytesscripts/package_skill.pyruns7,035 bytesscripts/quick_validate.pyruns3,277 bytesscripts/run_skill_evals.pyruns25,443 bytesscripts/skillforge_config.pyruns7,361 bytesscripts/skillforge_doctor.pyruns16,775 bytesscripts/tests/test_compile.pyruns9,874 bytesscripts/tests/test_config_installer.pyruns7,536 bytesscripts/tests/test_config_privacy.pyruns7,254 bytesscripts/tests/test_context_advisor.pyruns19,828 bytesscripts/tests/test_discovery.pyruns8,730 bytesscripts/tests/test_doctor.pyruns12,075 bytesscripts/tests/test_friction.pyruns13,116 bytesscripts/tests/test_frontmatter.pyruns11,696 bytesscripts/tests/test_hooks.pyruns13,011 bytesscripts/tests/test_init_skill.pyruns5,305 bytesscripts/tests/test_package_skill_ignore.pyruns4,436 bytesscripts/tests/test_run_skill_evals.pyruns17,093 bytesscripts/tests/test_triage.pyruns8,627 bytesscripts/tests/test_validate_skill.pyruns10,274 bytesscripts/triage_skill_request.pyruns28,691 bytesscripts/validate-skill.pyruns657 bytesscripts/validate_skill.pyruns31,471 bytes
Read SKILL.md
# SkillForge 6 - Skill Router, Creator & Ecosystem Maintainer
Routes any skill-related request to the right action (use, improve, create, compose), creates new skills through an evidence-driven pipeline, and maintains the health of the whole skill ecosystem. Core principle: **skill quality is a property of behavior, not documents - a skill is done when a fresh agent demonstrably does better with it than without it.**
## Routing (Phase 0)
Always triage before creating anything:
```bash
python3 scripts/discover_skills.py # refresh index (auto-refreshes if >24h old)
python3 scripts/triage_skill_request.py "<the user's request>" --json
```
| Triage result | Action |View the complete source on GitHubsample-skill
When your agent uses it
Use when validating the SkillForge validator itself - exercises every supported frontmatter feature: boolean user-invocable, an allowed-tools block list, and nested metadata with an inline list.
What it loads into context
Frontmatter
99 tokensAlways available to the agent
SKILL.md
339 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Process
- Verification
- Anti-Patterns
- Extension Points
Files
SKILL.mdcore1,421 bytes
Read SKILL.md
# Sample Skill
A fixture skill used by test_validate_skill.py. It uses every frontmatter
feature the vendored YAML parser must support, and satisfies every
structural check in validate_skill.py, so the full validator must report
zero errors for it.
## Process
1. Run the validator against this directory.
2. Assert that the error list is empty.
3. Assert that typed values survived parsing (booleans stay booleans).
| Step | Check | Expected |View the complete source on GitHubSkills included
- skillforge
- sample-skill
Repository facts
- License
- MIT
- Created
- Dec 30, 2025
- Last pushed
- Jul 29, 2026
- Forks
- 93
- Open issues
- 0
- Project activity
- Slowing
Rank over the last 12 weeks
Now #956 · best #635 · down 265 in 30 days
- #938 on Nov 1
- #944 on Nov 2
- #949 on Nov 3
- #950 from Nov 4 to Nov 5
- #951 on Nov 6
- #956 since Nov 7
39 earlier periods
- #610 on Aug 2
- #599 on Aug 8
- #652 on Aug 18
- #637 on Aug 19
- #635 on Aug 20
- #657 on Aug 24
- #664 on Aug 25
- #650 on Aug 26
- #657 on Aug 27
- #679 on Aug 28
- #649 on Sep 4
- #659 on Sep 6
- #674 on Sep 7
- #697 on Sep 8
- #685 on Sep 10
- #674 from Sep 12 to Sep 13
- #691 on Sep 15
- #704 on Sep 16
- #705 on Sep 17
- #689 on Sep 20
- #707 on Sep 21
- #726 on Sep 22
- #716 on Sep 23
- #717 on Sep 28
- #732 on Sep 30
- #691 on Oct 1
- #753 on Oct 9
- #739 on Oct 11
- #756 on Oct 12
- #770 on Oct 15
- #741 on Oct 18
- #794 on Oct 20
- #805 on Oct 21
- #785 on Oct 22
- #912 on Oct 25
- #926 on Oct 28
- #930 on Oct 29
- #934 on Oct 30
- #937 on Oct 31
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 3 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- 2 broad permissionsin 2 files: SKILL.md:1 sample-skill/SKILL.md:1
- 7 dangerous shell commandsin 4 files: scripts/install_workshop.sh:14 SKILLFORGE_AUDIT.md:86 README.md:49 and 1 more
- 61 network referencesin 9 files: index.html:5 scripts/install_workshop.sh:12 SKILLFORGE_AUDIT.md:84 and 6 more
- No hidden or obfuscated text
- No instruction overrides
- 38 executable scriptsin 38 files: assets/templates/script-template.py:1 scripts/_constants.py:1 scripts/advisor_scoring.py:1 and 35 more
- 8 references to secretsin 6 files: scripts/tests/test_config_privacy.py:161 scripts/tests/test_friction.py:227 references/script-patterns-catalog.md:323 and 3 more
- No requests to vote in Hot
Show all 116 signals by file
README.md
- Network accessline 47
git clone https://github.com/tripleyak/SkillForge.git /tmp/skillforge - Dangerous shell operationline 49
cd ~/.claude/skills/skillforge && rm -rf README.md LICENSE CONTEXT.md docs .git .gitignore .skillignore index.html assets/images scripts/tests SKILLFORGE_AUDIT.md - Network accessline 79
Version history and detailed release notes live on the [releases page](https://github.com/tripleyak/SkillForge/releases). v6.0.0 is a ground-up rework; the audit that drove it ships in-repo as [SKILLFORGE_AUDIT.md](SKILLFORGE_AUDIT.md).
SKILL.md
- Broad permissionsline 1
Bash
SKILLFORGE_AUDIT.md
- Network accessline 84
- `DEFAULT_CONFIG` hardcodes `"owner_limit": ["tripleyak", "jackatlasov"]` - personal GitHub handles shipped to every installer, causing `gh repo list` network calls on every checkpoint for anyone who installs. - 700-char excerpts from pers - Network accessline 85
- 700-char excerpts from personal files are persisted in plaintext to `~/.local/share/skillforge/advice.jsonl`. Exclusions are pattern-based only; a loose `passwords.txt` in a scanned directory is fair game for excerpting. - The README's re - Dangerous shell operationline 86
- The README's recommended install is `curl | bash` from an unpinned main branch, and the installer appends to global `~/.claude/CLAUDE.md`, loads a LaunchAgent, and runs the first personal-directory scan at install time, all without prompt - Network accessline 86
- The README's recommended install is `curl | bash` from an unpinned main branch, and the installer appends to global `~/.claude/CLAUDE.md`, loads a LaunchAgent, and runs the first personal-directory scan at install time, all without prompt - Network accessline 125
14. **Replace launchd with Claude Code hooks.** The advisor's entire delivery problem dissolves if it runs where the agent already is: a `SessionStart` hook surfaces queued suggestions at session open; a `UserPromptSubmit` hook does the che - Dangerous shell operationline 126
15. **Privacy: flip to opt-in.** Personal paths and GitHub owners empty by default, chosen at install; consent-before-read, not sensitivity-notes-after; encrypt or at least scope the advice queue; drop `curl | bash` for a pinned-release ins - Network accessline 126
15. **Privacy: flip to opt-in.** Personal paths and GitHub owners empty by default, chosen at install; consent-before-read, not sensitivity-notes-after; encrypt or at least scope the advice queue; drop `curl | bash` for a pinned-release ins
assets/templates/github-workflow-skill-ci.yml
- Network accessline 24
# Point this at your fork (or a vendored copy) and pin a ref you trust. env: SKILLFORGE_REPO: https://github.com/tripleyak/SkillForge.git - Network accessline 25
env: SKILLFORGE_REPO: https://github.com/tripleyak/SkillForge.git SKILLFORGE_REF: main - Network accessline 26
SKILLFORGE_REPO: https://github.com/tripleyak/SkillForge.git
assets/templates/script-template.py
- Executable scriptline 1
#!/usr/bin/env python3
index.html
- Network accessline 5
<meta name="viewport" content="width=device-width, initial-scale=1" /> <title>SkillForge — From Art to Engineering</title> <link rel="preconnect" href="https://fonts.googleapis.com"> - Network accessline 6
<title>SkillForge — From Art to Engineering</title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - Network accessline 7
<link rel="preconnect" href="https://fonts.googleapis.com"> - Network accessline 8
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - Network accessline 9
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&family=Fraunces:opsz,wght@9..144,400;9..144,600&display=swap" rel="stylesheet"> - Network accessline 34
body::before{ content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.035;mix-blend-mode:overlay; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filte - Network accessline 35
content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.035;mix-blend-mode:overlay; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbul - Network accessline 36
background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='1 - Network accessline 553
Forge your first skill </a> <a href="https://github.com/tripleyak/SkillForge" target="_blank" class="btn ghost"> - Network accessline 554
</a> <a href="https://github.com/tripleyak/SkillForge" target="_blank" class="btn ghost"> <svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.8 10.9.6.1.8-.2.8-.5v-2c-3.2.7-3.9-1.4-3.9 - Network accessline 555
<a href="https://github.com/tripleyak/SkillForge" target="_blank" class="btn ghost"> - Network accessline 850
</div> <div style="margin-top:36px"> <a href="https://github.com/tripleyak/SkillForge" target="_blank" class="btn primary"> - Network accessline 851
<div style="margin-top:36px"> <a href="https://github.com/tripleyak/SkillForge" target="_blank" class="btn primary"> <svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.8 10.9.6.1. - Network accessline 852
<a href="https://github.com/tripleyak/SkillForge" target="_blank" class="btn primary"> - Network accessline 865
<div class="term-body" id="term"> <span class="line"><span class="cm"># clone</span></span> <span class="line"><span class="pr">$</span> git clone <span class="k">https://github.com/tripleyak/SkillForge.git</span> /tmp/skill - Network accessline 866
<span class="line"><span class="cm"># clone</span></span> <span class="line"><span class="pr">$</span> git clone <span class="k">https://github.com/tripleyak/SkillForge.git</span> /tmp/skillforge</span> <span class="line"><s - Network accessline 867
<span class="line"><span class="pr">$</span> git clone <span class="k">https://github.com/tripleyak/SkillForge.git</span> /tmp/skillforge</span> - Network accessline 887
<div class="mono">SKILLFORGE · v5.1.0 · MIT LICENSE · © 2026 TRIPLEYAK</div> <div class="foot-links mono"> <a href="https://github.com/tripleyak/SkillForge" target="_blank">GITHUB</a> - Network accessline 888
<div class="foot-links mono"> <a href="https://github.com/tripleyak/SkillForge" target="_blank">GITHUB</a> <a href="https://github.com/tripleyak/SkillForge/blob/main/SKILL.md" target="_blank">SKILL.MD</a> - Network accessline 889
<a href="https://github.com/tripleyak/SkillForge" target="_blank">GITHUB</a> - Network accessline 890
<a href="https://github.com/tripleyak/SkillForge/blob/main/SKILL.md" target="_blank">SKILL.MD</a> - Network accessline 891
<a href="https://github.com/tripleyak/SkillForge/releases" target="_blank">RELEASES</a> - Network accessline 892
<a href="https://github.com/tripleyak/SkillForge/blob/main/LICENSE" target="_blank">LICENSE</a> - Network accessline 1498
const xL = Math.cos(a)*R2, yL = Math.sin(a)*R2; // spoke const ln = document.createElementNS('http://www.w3.org/2000/svg','line'); - Network accessline 1499
// spoke const ln = document.createElementNS('http://www.w3.org/2000/svg','line'); ln.setAttribute('x1',0);ln.setAttribute('y1',0);ln.setAttribute('x2',x);ln.setAttribute('y2',y); - Network accessline 1500
const ln = document.createElementNS('http://www.w3.org/2000/svg','line'); - Network accessline 1502
spokes.appendChild(ln); // dot const c = document.createElementNS('http://www.w3.org/2000/svg','circle'); - Network accessline 1503
// dot const c = document.createElementNS('http://www.w3.org/2000/svg','circle'); c.setAttribute('cx',x);c.setAttribute('cy',y);c.setAttribute('r',5); - Network accessline 1504
const c = document.createElementNS('http://www.w3.org/2000/svg','circle'); - Network accessline 1507
c.setAttribute('data-i',i); dots.appendChild(c); const pulse = document.createElementNS('http://www.w3.org/2000/svg','circle'); - Network accessline 1508
dots.appendChild(c); const pulse = document.createElementNS('http://www.w3.org/2000/svg','circle'); pulse.setAttribute('cx',x);pulse.setAttribute('cy',y);pulse.setAttribute('r',10); - Network accessline 1509
const pulse = document.createElementNS('http://www.w3.org/2000/svg','circle'); - Network accessline 1512
dots.appendChild(pulse); // label const t = document.createElementNS('http://www.w3.org/2000/svg','text'); - Network accessline 1513
// label const t = document.createElementNS('http://www.w3.org/2000/svg','text'); t.setAttribute('x',xL);t.setAttribute('y',yL+4); - Network accessline 1514
const t = document.createElementNS('http://www.w3.org/2000/svg','text');
references/script-patterns-catalog.md
- Access to secretsline 323
[Credential-related source omitted]
scripts/_constants.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/advisor_scoring.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/check_docs_safety.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/common.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/compile_skill.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/context_advisor.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/context_sources.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/discover_skills.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/frontmatter.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 131
# A mapping entry looks like `key:` or `key: value` where the colon is # followed by whitespace or end of line (so `https://x` is not a key). - Network accessline 132
# followed by whitespace or end of line (so `https://x` is not a key).
scripts/hooks/session_start.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/hooks/user_prompt_submit.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/init_skill.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/install_skillforge.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/install_workshop.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 12
# - prints a post-install summary of exactly what was touched # # Works non-interactively when piped (curl | bash): defaults to safe choices, - Network accessline 13
# # Works non-interactively when piped (curl | bash): defaults to safe choices, # meaning no hooks, no personal context, and no overwrite of an existing - Dangerous shell operationline 14
# Works non-interactively when piped (curl | bash): defaults to safe choices, - Network accessline 14
# Works non-interactively when piped (curl | bash): defaults to safe choices, - Network accessline 18
REPO_URL="https://github.com/tripleyak/SkillForge.git" - Dangerous shell operationline 104
rm -rf "$TMP_DIR" - Network accessline 111
SOURCE_DIR="$TMP_DIR/SkillForge" echo "Downloading SkillForge..." git clone --depth 1 "$REPO_URL" "$SOURCE_DIR" >/dev/null - Network accessline 112
echo "Downloading SkillForge..." git clone --depth 1 "$REPO_URL" "$SOURCE_DIR" >/dev/null else - Network accessline 113
git clone --depth 1 "$REPO_URL" "$SOURCE_DIR" >/dev/null - Dangerous shell operationline 151
rm -rf "$dest"
scripts/mine_skill_friction.py
- Executable scriptline 1
#!/usr/bin/env python3 - Dangerous shell operationline 92
"ls cat echo pwd cd head tail grep egrep fgrep find mkdir rm cp mv which " - Network accessline 92
"ls cat echo pwd cd head tail grep egrep fgrep find mkdir rm cp mv which " "touch sed awk wc sort uniq tr cut true false test date open chmod chown " "export env printf sleep kill ps df du tar unzip zip curl wget man less " - Network accessline 93
"touch sed awk wc sort uniq tr cut true false test date open chmod chown " "export env printf sleep kill ps df du tar unzip zip curl wget man less " "more diff tee xargs basename dirname readlink realpath".split() - Network accessline 94
"export env printf sleep kill ps df du tar unzip zip curl wget man less "
scripts/package_skill.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/quick_validate.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/run_skill_evals.py
scripts/skillforge_config.py
scripts/skillforge_doctor.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/tests/fixtures/sample-skill/SKILL.md
- Broad permissionsline 1
Bash
scripts/tests/test_compile.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/tests/test_config_installer.py
scripts/tests/test_config_privacy.py
scripts/tests/test_context_advisor.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/tests/test_discovery.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/tests/test_doctor.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/tests/test_friction.py
scripts/tests/test_frontmatter.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 116
def test_url_value_not_treated_as_comment(self) -> None: parsed = _vendored_parse("homepage: https://example.com/path") - Network accessline 117
parsed = _vendored_parse("homepage: https://example.com/path") - Network accessline 118
self.assertEqual(parsed["homepage"], "https://example.com/path")
scripts/tests/test_hooks.py
scripts/tests/test_init_skill.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/tests/test_package_skill_ignore.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/tests/test_run_skill_evals.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/tests/test_triage.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/tests/test_validate_skill.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/triage_skill_request.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/validate-skill.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/validate_skill.py
- Executable scriptline 1
#!/usr/bin/env python3
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 3 facts
- Network access in code of documentationREADME.md:47Low confidence
- Dangerous shell operation in code of documentationREADME.md:49Low confidence
- Broad permissions in the frontmatter of the SKILL.mdSKILL.md:10High confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Frontmatter field user-invocable in SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/tripleyak-skillforge/)