skills-layer 0.1.0

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/LICENSE ADDED
@@ -0,0 +1,11 @@
1
+ Skills Layer CLI Package License
2
+
3
+ Copyright (c) 2026 Skills Layer.
4
+
5
+ This package is published as a public npm client package for installing and using the Skills Layer command-line interface.
6
+
7
+ Permission is granted to install and run this package for evaluating, using, or integrating with Skills Layer services.
8
+
9
+ No license is granted to copy, modify, redistribute, reverse engineer, or create derivative works from this package except where such rights cannot be restricted by applicable law or are granted by a separate written agreement.
10
+
11
+ The package is provided as-is, without warranties or guarantees of any kind.
package/README.md ADDED
@@ -0,0 +1,138 @@
1
+ # Skills Layer CLI
2
+
3
+ <p align="center">
4
+ <img src="docs/assets/skills-layer-logo.svg" alt="Skills Layer logo" width="120">
5
+ </p>
6
+
7
+ <p align="center">
8
+ <img src="docs/assets/skills-layer-hero.svg" alt="Skills Layer hero image" width="100%">
9
+ </p>
10
+
11
+ <p align="center">
12
+ <img alt="npm package" src="https://img.shields.io/badge/npm-skills--layer-cb3837?style=flat-square&logo=npm&logoColor=white">
13
+ <img alt="Node.js" src="https://img.shields.io/badge/node-%3E%3D22-339933?style=flat-square&logo=node.js&logoColor=white">
14
+ <img alt="CLI" src="https://img.shields.io/badge/interface-CLI%20%7C%20MCP%20%7C%20API-2563eb?style=flat-square">
15
+ <img alt="backend" src="https://img.shields.io/badge/backend-Skills%20Layer%20Cloud-4b5563?style=flat-square">
16
+ </p>
17
+
18
+ Skills Layer CLI is the public npm package for the Skills Layer command-line client.
19
+
20
+ Use it to discover, validate, install, export, and manage agent-ready skill bundles from a terminal. By default, backend-backed commands talk to Skills Layer Cloud. Use another endpoint only when Skills Layer explicitly provides one for your account or environment.
21
+
22
+ Skills Layer is a headless, agent-first platform for Markdown-first skill bundles centered on `SKILL.md`. It manages catalog metadata, validation, trust reports, installation plans, entitlements, exports, workspace deployment, and local agent materialization. It does not host a separate runtime for every user's skill; your agent, IDE, CLI, or backend remains the execution environment.
23
+
24
+ <p align="center">
25
+ <img src="docs/assets/skills-layer-flow.svg" alt="Skills Layer flow from SKILL.md bundle to validation, catalog, CLI, MCP, API, and local agent installation" width="96%">
26
+ </p>
27
+
28
+ ## What You Can Do
29
+
30
+ | Capability | What it helps with |
31
+ |---|---|
32
+ | Discover skills | Search, compare, view featured/trending skills, and inspect trust summaries before install. |
33
+ | Validate bundles | Check `SKILL.md` frontmatter, references, trigger quality, archive safety, dependency manifests, and security posture. |
34
+ | Install locally | Materialize approved skills into project, global, workspace, or agent-specific folders with portable lockfile support. |
35
+ | Work with agents | Use one CLI vocabulary that aligns with Skills Layer MCP and REST surfaces. |
36
+ | Publish and maintain | Creator commands cover scaffolding, validation, submission, versioning, issues, reviews, analytics, and listing updates. |
37
+ | Govern teams | Workspace commands support team availability, deployment guidance, review, and trust-aware local use. |
38
+
39
+ <p align="center">
40
+ <img src="docs/assets/skills-layer-marketplace-flow.svg" alt="Skills Layer marketplace and installation flow" width="96%">
41
+ </p>
42
+
43
+ ## What A Skill Is
44
+
45
+ A Skills Layer skill is a versioned bundle built around a required `SKILL.md` file and optional supporting content:
46
+
47
+ ```text
48
+ my-skill/
49
+ SKILL.md
50
+ references/
51
+ scripts/
52
+ assets/
53
+ ```
54
+
55
+ The bundle is Markdown-first. `SKILL.md` frontmatter becomes structured metadata, larger context usually belongs in `references/`, and validation checks the bundle before users or teams rely on it.
56
+
57
+ ## Install
58
+
59
+ ```bash
60
+ npm install -g skills-layer
61
+ skills-layer --help
62
+ ```
63
+
64
+ For one-off use:
65
+
66
+ ```bash
67
+ npx skills-layer --help
68
+ ```
69
+
70
+ ## Common First Commands
71
+
72
+ ```bash
73
+ skills-layer search "project planning"
74
+ skills-layer show project-planner
75
+ skills-layer trust project-planner
76
+ skills-layer install project-planner --dry-run
77
+ skills-layer install project-planner
78
+ skills-layer validate ./my-skill --json
79
+ skills-layer agents list
80
+ ```
81
+
82
+ ## Backend Defaults
83
+
84
+ By default, backend-backed commands use `https://api.skills-layer.com`.
85
+
86
+ Use a Skills Layer-provided endpoint for a single command:
87
+
88
+ ```bash
89
+ skills-layer search planning --base-url <provided-api-url>
90
+ ```
91
+
92
+ Remember the hosted backend:
93
+
94
+ ```bash
95
+ skills-layer backend cloud
96
+ ```
97
+
98
+ Remember a Skills Layer-provided local/backend endpoint:
99
+
100
+ ```bash
101
+ skills-layer backend local
102
+ ```
103
+
104
+ Remember a Skills Layer-provided endpoint:
105
+
106
+ ```bash
107
+ skills-layer backend cloud --base-url <provided-api-url>
108
+ ```
109
+
110
+ The CLI resolves backend URLs in this order: `--base-url`, `SKILLS_LAYER_BASE_URL`, saved backend preference, saved login config, then `https://api.skills-layer.com`.
111
+
112
+ ## MCP And API
113
+
114
+ Skills Layer exposes the same product model through CLI, MCP, and REST-style surfaces. Public endpoints include:
115
+
116
+ - hosted API default: `https://api.skills-layer.com`
117
+ - MCP endpoint: `https://api.skills-layer.com/mcp`
118
+ - public docs: `https://skills-layer.com/docs`
119
+ - user journeys: `https://skills-layer.com/journeys`
120
+
121
+ Use only endpoints published or explicitly provided by Skills Layer.
122
+
123
+ ## Safety Model
124
+
125
+ - Inspect trust reports before installing skills into sensitive projects.
126
+ - Use `--dry-run` before mutating installs, submissions, workspace deployment, listing visibility, or ownership state.
127
+ - Use `guardian check` before letting a skill drive shell, network, file, secret, browser, device, API, generated-code, or model-context actions.
128
+ - Keep API keys out of visible command arguments. Login flows use saved sessions, masked prompts, secure headers, or environment-provided secrets.
129
+
130
+ ## What Ships
131
+
132
+ The npm package ships the public CLI runtime, the executable wrapper, the install banner, this README, public README images, the package manifest, and the package license.
133
+
134
+ It does not ship internal deployment scripts, database credentials, release checklists, tests, or repository-internal source material.
135
+
136
+ ## License
137
+
138
+ See [LICENSE](LICENSE).
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+
3
+ import "../scripts/skills-layer.mjs";
@@ -0,0 +1,113 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1600" height="560" viewBox="0 0 1600 560" role="img" aria-labelledby="title desc">
2
+ <title id="title">Skills Layer skill distribution flow</title>
3
+ <desc id="desc">A clean four-step visual showing how a SKILL.md bundle moves through validation, catalog publication, CLI/MCP/REST access, and local agent installation.</desc>
4
+ <defs>
5
+ <linearGradient id="flowBg" x1="0" x2="1600" y1="0" y2="560" gradientUnits="userSpaceOnUse">
6
+ <stop stop-color="#F8FAF7"/>
7
+ <stop offset="0.5" stop-color="#F2F7F6"/>
8
+ <stop offset="1" stop-color="#F8F4EB"/>
9
+ </linearGradient>
10
+ <radialGradient id="flowGlowTeal" cx="0" cy="0" r="1" gradientTransform="matrix(360 0 0 220 1190 120)" gradientUnits="userSpaceOnUse">
11
+ <stop stop-color="#6FE7C8" stop-opacity="0.48"/>
12
+ <stop offset="1" stop-color="#6FE7C8" stop-opacity="0"/>
13
+ </radialGradient>
14
+ <radialGradient id="flowGlowGold" cx="0" cy="0" r="1" gradientTransform="matrix(300 0 0 220 1350 430)" gradientUnits="userSpaceOnUse">
15
+ <stop stop-color="#F5B942" stop-opacity="0.34"/>
16
+ <stop offset="1" stop-color="#F5B942" stop-opacity="0"/>
17
+ </radialGradient>
18
+ <linearGradient id="teal" x1="0" x2="170" y1="0" y2="74" gradientUnits="userSpaceOnUse">
19
+ <stop stop-color="#19C6A7"/>
20
+ <stop offset="1" stop-color="#6FE7C8"/>
21
+ </linearGradient>
22
+ <linearGradient id="blue" x1="0" x2="170" y1="0" y2="74" gradientUnits="userSpaceOnUse">
23
+ <stop stop-color="#5368F6"/>
24
+ <stop offset="1" stop-color="#30B8E8"/>
25
+ </linearGradient>
26
+ <linearGradient id="gold" x1="0" x2="170" y1="0" y2="74" gradientUnits="userSpaceOnUse">
27
+ <stop stop-color="#F5B942"/>
28
+ <stop offset="1" stop-color="#F97361"/>
29
+ </linearGradient>
30
+ <filter id="softShadow" x="-8%" y="-12%" width="116%" height="135%" color-interpolation-filters="sRGB">
31
+ <feDropShadow dx="0" dy="14" stdDeviation="16" flood-color="#101828" flood-opacity="0.13"/>
32
+ </filter>
33
+ <pattern id="grid" width="48" height="48" patternUnits="userSpaceOnUse">
34
+ <path d="M48 0H0V48" fill="none" stroke="#101828" stroke-opacity="0.045" stroke-width="1"/>
35
+ </pattern>
36
+ <marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="8" markerHeight="8" orient="auto">
37
+ <path d="M0 0L10 5L0 10Z" fill="#98A2B3"/>
38
+ </marker>
39
+ <style>
40
+ .title { font: 790 44px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #111827; letter-spacing: 0; }
41
+ .subtitle { font: 560 22px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #475467; letter-spacing: 0; }
42
+ .step-number { font: 800 18px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #FFFFFF; }
43
+ .card-title { font: 760 25px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #111827; letter-spacing: 0; }
44
+ .card-copy { font: 520 17px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #475467; letter-spacing: 0; }
45
+ .terminal { font: 650 18px "SFMono-Regular", Consolas, "Liberation Mono", monospace; fill: #D1FAE5; }
46
+ .terminal-muted { font: 650 15px "SFMono-Regular", Consolas, "Liberation Mono", monospace; fill: #98A2B3; }
47
+ </style>
48
+ </defs>
49
+
50
+ <rect width="1600" height="560" rx="36" fill="url(#flowBg)"/>
51
+ <rect width="1600" height="560" rx="36" fill="url(#grid)"/>
52
+ <rect width="1600" height="560" rx="36" fill="url(#flowGlowTeal)"/>
53
+ <rect width="1600" height="560" rx="36" fill="url(#flowGlowGold)"/>
54
+
55
+ <g transform="translate(104 70)">
56
+ <text class="title" x="0" y="0">From SKILL.md to every agent</text>
57
+ <text class="subtitle" x="0" y="42">A single governed path for publishing, trust, distribution, and local materialization.</text>
58
+ </g>
59
+
60
+ <g transform="translate(104 154)">
61
+ <g filter="url(#softShadow)">
62
+ <rect x="0" y="0" width="290" height="186" rx="8" fill="#FFFFFF" stroke="#E4E7EC"/>
63
+ <rect x="22" y="22" width="42" height="42" rx="21" fill="url(#teal)"/>
64
+ <text class="step-number" x="43" y="50" text-anchor="middle">1</text>
65
+ <text class="card-title" x="22" y="104">Create</text>
66
+ <text class="card-copy" x="22" y="136">A Markdown-first bundle</text>
67
+ <text class="card-copy" x="22" y="162">with references and assets.</text>
68
+ </g>
69
+
70
+ <line x1="318" y1="93" x2="384" y2="93" stroke="#98A2B3" stroke-width="3" marker-end="url(#arrow)"/>
71
+
72
+ <g transform="translate(408 0)" filter="url(#softShadow)">
73
+ <rect x="0" y="0" width="290" height="186" rx="8" fill="#FFFFFF" stroke="#E4E7EC"/>
74
+ <rect x="22" y="22" width="42" height="42" rx="21" fill="url(#blue)"/>
75
+ <text class="step-number" x="43" y="50" text-anchor="middle">2</text>
76
+ <text class="card-title" x="22" y="104">Validate</text>
77
+ <text class="card-copy" x="22" y="136">Review triggers, metadata,</text>
78
+ <text class="card-copy" x="22" y="162">provenance, and safety.</text>
79
+ </g>
80
+
81
+ <line x1="726" y1="93" x2="792" y2="93" stroke="#98A2B3" stroke-width="3" marker-end="url(#arrow)"/>
82
+
83
+ <g transform="translate(816 0)" filter="url(#softShadow)">
84
+ <rect x="0" y="0" width="290" height="186" rx="8" fill="#FFFFFF" stroke="#E4E7EC"/>
85
+ <rect x="22" y="22" width="42" height="42" rx="21" fill="url(#gold)"/>
86
+ <text class="step-number" x="43" y="50" text-anchor="middle">3</text>
87
+ <text class="card-title" x="22" y="104">Publish</text>
88
+ <text class="card-copy" x="22" y="136">Catalog pages, trust data,</text>
89
+ <text class="card-copy" x="22" y="162">and well-known manifests.</text>
90
+ </g>
91
+
92
+ <line x1="1134" y1="93" x2="1200" y2="93" stroke="#98A2B3" stroke-width="3" marker-end="url(#arrow)"/>
93
+
94
+ <g transform="translate(1224 0)" filter="url(#softShadow)">
95
+ <rect x="0" y="0" width="290" height="186" rx="8" fill="#FFFFFF" stroke="#E4E7EC"/>
96
+ <rect x="22" y="22" width="42" height="42" rx="21" fill="#111827"/>
97
+ <text class="step-number" x="43" y="50" text-anchor="middle">4</text>
98
+ <text class="card-title" x="22" y="104">Install</text>
99
+ <text class="card-copy" x="22" y="136">CLI, MCP, and REST deliver</text>
100
+ <text class="card-copy" x="22" y="162">skills into agent folders.</text>
101
+ </g>
102
+ </g>
103
+
104
+ <g transform="translate(242 400)" filter="url(#softShadow)">
105
+ <rect x="0" y="0" width="1116" height="88" rx="8" fill="#111827"/>
106
+ <circle cx="32" cy="30" r="7" fill="#F97361"/>
107
+ <circle cx="56" cy="30" r="7" fill="#F5B942"/>
108
+ <circle cx="80" cy="30" r="7" fill="#19C6A7"/>
109
+ <text class="terminal-muted" x="112" y="35">agent install</text>
110
+ <text class="terminal" x="30" y="66">$ skills-layer install project-planner --agent codex</text>
111
+ <text class="terminal" x="646" y="66">writes .codex/skills/project-planner</text>
112
+ </g>
113
+ </svg>
@@ -0,0 +1,122 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1600" height="640" viewBox="0 0 1600 640" role="img" aria-labelledby="title desc">
2
+ <title id="title">Skills Layer hero image</title>
3
+ <desc id="desc">Skills Layer brand artwork showing a layered skill bundle connected to REST, MCP, and CLI surfaces.</desc>
4
+ <defs>
5
+ <linearGradient id="heroBg" x1="0" x2="1600" y1="0" y2="640" gradientUnits="userSpaceOnUse">
6
+ <stop stop-color="#F8FAF7"/>
7
+ <stop offset="0.48" stop-color="#F2F7F6"/>
8
+ <stop offset="1" stop-color="#F8F4EB"/>
9
+ </linearGradient>
10
+ <radialGradient id="heroGlowA" cx="0" cy="0" r="1" gradientTransform="matrix(360 0 0 260 1090 130)" gradientUnits="userSpaceOnUse">
11
+ <stop stop-color="#6FE7C8" stop-opacity="0.72"/>
12
+ <stop offset="1" stop-color="#6FE7C8" stop-opacity="0"/>
13
+ </radialGradient>
14
+ <radialGradient id="heroGlowB" cx="0" cy="0" r="1" gradientTransform="matrix(300 0 0 220 1340 470)" gradientUnits="userSpaceOnUse">
15
+ <stop stop-color="#F5B942" stop-opacity="0.48"/>
16
+ <stop offset="1" stop-color="#F5B942" stop-opacity="0"/>
17
+ </radialGradient>
18
+ <linearGradient id="markTop" x1="18" x2="204" y1="48" y2="118" gradientUnits="userSpaceOnUse">
19
+ <stop stop-color="#19C6A7"/>
20
+ <stop offset="1" stop-color="#6FE7C8"/>
21
+ </linearGradient>
22
+ <linearGradient id="markMiddle" x1="12" x2="212" y1="94" y2="172" gradientUnits="userSpaceOnUse">
23
+ <stop stop-color="#5368F6"/>
24
+ <stop offset="1" stop-color="#30B8E8"/>
25
+ </linearGradient>
26
+ <linearGradient id="markBottom" x1="18" x2="204" y1="148" y2="224" gradientUnits="userSpaceOnUse">
27
+ <stop stop-color="#F5B942"/>
28
+ <stop offset="1" stop-color="#F97361"/>
29
+ </linearGradient>
30
+ <linearGradient id="layerOne" x1="772" x2="1328" y1="92" y2="316" gradientUnits="userSpaceOnUse">
31
+ <stop stop-color="#19C6A7"/>
32
+ <stop offset="1" stop-color="#6FE7C8"/>
33
+ </linearGradient>
34
+ <linearGradient id="layerTwo" x1="772" x2="1328" y1="176" y2="400" gradientUnits="userSpaceOnUse">
35
+ <stop stop-color="#5368F6"/>
36
+ <stop offset="1" stop-color="#30B8E8"/>
37
+ </linearGradient>
38
+ <linearGradient id="layerThree" x1="772" x2="1328" y1="260" y2="484" gradientUnits="userSpaceOnUse">
39
+ <stop stop-color="#F5B942"/>
40
+ <stop offset="1" stop-color="#F97361"/>
41
+ </linearGradient>
42
+ <filter id="softShadow" x="-15%" y="-15%" width="130%" height="140%" color-interpolation-filters="sRGB">
43
+ <feDropShadow dx="0" dy="18" stdDeviation="18" flood-color="#101828" flood-opacity="0.16"/>
44
+ </filter>
45
+ <pattern id="grid" width="48" height="48" patternUnits="userSpaceOnUse">
46
+ <path d="M48 0H0V48" fill="none" stroke="#101828" stroke-opacity="0.055" stroke-width="1"/>
47
+ </pattern>
48
+ </defs>
49
+ <rect width="1600" height="640" rx="44" fill="url(#heroBg)"/>
50
+ <rect width="1600" height="640" rx="44" fill="url(#grid)"/>
51
+ <rect width="1600" height="640" rx="44" fill="url(#heroGlowA)"/>
52
+ <rect width="1600" height="640" rx="44" fill="url(#heroGlowB)"/>
53
+
54
+ <g transform="translate(112 106)">
55
+ <g filter="url(#softShadow)" transform="scale(0.9)">
56
+ <path d="M112 0 210 56 112 112 14 56Z" fill="url(#markTop)"/>
57
+ <path d="M112 53 210 109 112 165 14 109Z" fill="url(#markMiddle)"/>
58
+ <path d="M112 106 210 162 112 218 14 162Z" fill="url(#markBottom)"/>
59
+ <path d="M112 0 210 56 112 112 14 56Z" fill="none" stroke="#0F172A" stroke-opacity="0.12" stroke-width="3"/>
60
+ <path d="M112 53 210 109 112 165 14 109Z" fill="none" stroke="#0F172A" stroke-opacity="0.12" stroke-width="3"/>
61
+ <path d="M112 106 210 162 112 218 14 162Z" fill="none" stroke="#0F172A" stroke-opacity="0.12" stroke-width="3"/>
62
+ <circle cx="112" cy="109" r="15" fill="#FFFFFF" fill-opacity="0.92"/>
63
+ <circle cx="112" cy="109" r="6" fill="#111827"/>
64
+ </g>
65
+ <text x="238" y="78" fill="#111827" font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="72" font-weight="790" letter-spacing="0">Skills Layer</text>
66
+ <text x="242" y="128" fill="#475467" font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="27" font-weight="560" letter-spacing="0">AI Agent first platform for Skills</text>
67
+ <text x="242" y="185" fill="#344054" font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="24" font-weight="520" letter-spacing="0">Governed publishing for</text>
68
+ <text x="242" y="222" fill="#344054" font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="24" font-weight="520" letter-spacing="0">Markdown-first skill bundles.</text>
69
+
70
+ <g transform="translate(242 276)" font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="20" font-weight="700">
71
+ <rect x="0" y="0" width="92" height="44" rx="22" fill="#111827"/>
72
+ <text x="46" y="29" text-anchor="middle" fill="#FFFFFF">REST</text>
73
+ <rect x="112" y="0" width="86" height="44" rx="22" fill="#E8F8F5" stroke="#19C6A7" stroke-width="2"/>
74
+ <text x="155" y="29" text-anchor="middle" fill="#027A63">MCP</text>
75
+ <rect x="218" y="0" width="74" height="44" rx="22" fill="#EEF1FF" stroke="#5368F6" stroke-width="2"/>
76
+ <text x="255" y="29" text-anchor="middle" fill="#3445D8">CLI</text>
77
+ <rect x="312" y="0" width="150" height="44" rx="22" fill="#FFF5DF" stroke="#F5B942" stroke-width="2"/>
78
+ <text x="387" y="29" text-anchor="middle" fill="#9A5B00">well-known</text>
79
+ </g>
80
+ </g>
81
+
82
+ <g transform="translate(814 96)">
83
+ <path d="M560 78C606 98 638 141 638 191C638 264 568 324 482 324C459 324 437 320 418 313" fill="none" stroke="#111827" stroke-opacity="0.18" stroke-width="3"/>
84
+ <path d="M154 354C102 332 66 287 66 235C66 160 140 100 232 100C256 100 279 104 300 111" fill="none" stroke="#111827" stroke-opacity="0.18" stroke-width="3"/>
85
+ <g filter="url(#softShadow)">
86
+ <path d="M286 0 560 140 286 280 12 140Z" fill="url(#layerOne)"/>
87
+ <path d="M286 84 560 224 286 364 12 224Z" fill="url(#layerTwo)"/>
88
+ <path d="M286 168 560 308 286 448 12 308Z" fill="url(#layerThree)"/>
89
+ <path d="M286 0 560 140 286 280 12 140Z" fill="none" stroke="#111827" stroke-opacity="0.12" stroke-width="4"/>
90
+ <path d="M286 84 560 224 286 364 12 224Z" fill="none" stroke="#111827" stroke-opacity="0.12" stroke-width="4"/>
91
+ <path d="M286 168 560 308 286 448 12 308Z" fill="none" stroke="#111827" stroke-opacity="0.12" stroke-width="4"/>
92
+ </g>
93
+ <g font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" text-anchor="middle" letter-spacing="0">
94
+ <text x="286" y="148" fill="#063D35" font-size="35" font-weight="800">SKILL.md</text>
95
+ <text x="286" y="233" fill="#FFFFFF" font-size="31" font-weight="780">validation</text>
96
+ <text x="286" y="318" fill="#5F3600" font-size="31" font-weight="780">install plans</text>
97
+ </g>
98
+
99
+ <g font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="19" font-weight="750" letter-spacing="0">
100
+ <g transform="translate(0 24)">
101
+ <rect x="0" y="0" width="162" height="48" rx="24" fill="#FFFFFF" stroke="#D0D5DD"/>
102
+ <circle cx="30" cy="24" r="8" fill="#19C6A7"/>
103
+ <text x="54" y="31" fill="#344054">Catalog</text>
104
+ </g>
105
+ <g transform="translate(512 46)">
106
+ <rect x="0" y="0" width="172" height="48" rx="24" fill="#FFFFFF" stroke="#D0D5DD"/>
107
+ <circle cx="30" cy="24" r="8" fill="#5368F6"/>
108
+ <text x="54" y="31" fill="#344054">Trust review</text>
109
+ </g>
110
+ <g transform="translate(36 394)">
111
+ <rect x="0" y="0" width="156" height="48" rx="24" fill="#FFFFFF" stroke="#D0D5DD"/>
112
+ <circle cx="30" cy="24" r="8" fill="#F97361"/>
113
+ <text x="54" y="31" fill="#344054">Exports</text>
114
+ </g>
115
+ <g transform="translate(506 372)">
116
+ <rect x="0" y="0" width="154" height="48" rx="24" fill="#FFFFFF" stroke="#D0D5DD"/>
117
+ <circle cx="30" cy="24" r="8" fill="#F5B942"/>
118
+ <text x="54" y="31" fill="#344054">Agents</text>
119
+ </g>
120
+ </g>
121
+ </g>
122
+ </svg>
@@ -0,0 +1,36 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="960" height="260" viewBox="0 0 960 260" role="img" aria-labelledby="title desc">
2
+ <title id="title">Skills Layer logo</title>
3
+ <desc id="desc">A layered geometric mark beside the Skills Layer wordmark on a light canvas.</desc>
4
+ <defs>
5
+ <linearGradient id="slLogoTop" x1="18" x2="204" y1="48" y2="118" gradientUnits="userSpaceOnUse">
6
+ <stop stop-color="#19C6A7"/>
7
+ <stop offset="1" stop-color="#6FE7C8"/>
8
+ </linearGradient>
9
+ <linearGradient id="slLogoMiddle" x1="12" x2="212" y1="94" y2="172" gradientUnits="userSpaceOnUse">
10
+ <stop stop-color="#5368F6"/>
11
+ <stop offset="1" stop-color="#30B8E8"/>
12
+ </linearGradient>
13
+ <linearGradient id="slLogoBottom" x1="18" x2="204" y1="148" y2="224" gradientUnits="userSpaceOnUse">
14
+ <stop stop-color="#F5B942"/>
15
+ <stop offset="1" stop-color="#F97361"/>
16
+ </linearGradient>
17
+ <filter id="slLogoShadow" x="-10%" y="-10%" width="120%" height="130%" color-interpolation-filters="sRGB">
18
+ <feDropShadow dx="0" dy="12" stdDeviation="13" flood-color="#101828" flood-opacity="0.16"/>
19
+ </filter>
20
+ </defs>
21
+ <rect width="960" height="260" rx="36" fill="#F8FAF7"/>
22
+ <g filter="url(#slLogoShadow)" transform="translate(52 22)">
23
+ <path d="M112 0 210 56 112 112 14 56Z" fill="url(#slLogoTop)"/>
24
+ <path d="M112 53 210 109 112 165 14 109Z" fill="url(#slLogoMiddle)"/>
25
+ <path d="M112 106 210 162 112 218 14 162Z" fill="url(#slLogoBottom)"/>
26
+ <path d="M112 0 210 56 112 112 14 56Z" fill="none" stroke="#0F172A" stroke-opacity="0.12" stroke-width="3"/>
27
+ <path d="M112 53 210 109 112 165 14 109Z" fill="none" stroke="#0F172A" stroke-opacity="0.12" stroke-width="3"/>
28
+ <path d="M112 106 210 162 112 218 14 162Z" fill="none" stroke="#0F172A" stroke-opacity="0.12" stroke-width="3"/>
29
+ <circle cx="112" cy="109" r="15" fill="#FFFFFF" fill-opacity="0.92"/>
30
+ <circle cx="112" cy="109" r="6" fill="#111827"/>
31
+ </g>
32
+ <g transform="translate(306 72)">
33
+ <text x="0" y="72" fill="#111827" font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="68" font-weight="780" letter-spacing="0">Skills Layer</text>
34
+ <text x="4" y="116" fill="#475467" font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="25" font-weight="560" letter-spacing="0">AI Agent first platform for Skills</text>
35
+ </g>
36
+ </svg>
@@ -0,0 +1,117 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1600" height="560" viewBox="0 0 1600 560" role="img" aria-labelledby="title desc">
2
+ <title id="title">Skills Layer developer marketplace value flow</title>
3
+ <desc id="desc">A clean visual showing how developers build skills, publish with guardrails, buyers install into agents, and creators can earn through Skills Layer Cloud.</desc>
4
+ <defs>
5
+ <linearGradient id="marketBg" x1="0" x2="1600" y1="0" y2="560" gradientUnits="userSpaceOnUse">
6
+ <stop stop-color="#F8FAF7"/>
7
+ <stop offset="0.5" stop-color="#F2F7F6"/>
8
+ <stop offset="1" stop-color="#F8F4EB"/>
9
+ </linearGradient>
10
+ <radialGradient id="marketGlowTeal" cx="0" cy="0" r="1" gradientTransform="matrix(380 0 0 240 1130 120)" gradientUnits="userSpaceOnUse">
11
+ <stop stop-color="#6FE7C8" stop-opacity="0.48"/>
12
+ <stop offset="1" stop-color="#6FE7C8" stop-opacity="0"/>
13
+ </radialGradient>
14
+ <radialGradient id="marketGlowGold" cx="0" cy="0" r="1" gradientTransform="matrix(320 0 0 230 1320 430)" gradientUnits="userSpaceOnUse">
15
+ <stop stop-color="#F5B942" stop-opacity="0.38"/>
16
+ <stop offset="1" stop-color="#F5B942" stop-opacity="0"/>
17
+ </radialGradient>
18
+ <linearGradient id="teal" x1="0" x2="170" y1="0" y2="74" gradientUnits="userSpaceOnUse">
19
+ <stop stop-color="#19C6A7"/>
20
+ <stop offset="1" stop-color="#6FE7C8"/>
21
+ </linearGradient>
22
+ <linearGradient id="blue" x1="0" x2="170" y1="0" y2="74" gradientUnits="userSpaceOnUse">
23
+ <stop stop-color="#5368F6"/>
24
+ <stop offset="1" stop-color="#30B8E8"/>
25
+ </linearGradient>
26
+ <linearGradient id="gold" x1="0" x2="170" y1="0" y2="74" gradientUnits="userSpaceOnUse">
27
+ <stop stop-color="#F5B942"/>
28
+ <stop offset="1" stop-color="#F97361"/>
29
+ </linearGradient>
30
+ <filter id="softShadow" x="-8%" y="-12%" width="116%" height="135%" color-interpolation-filters="sRGB">
31
+ <feDropShadow dx="0" dy="14" stdDeviation="16" flood-color="#101828" flood-opacity="0.13"/>
32
+ </filter>
33
+ <pattern id="grid" width="48" height="48" patternUnits="userSpaceOnUse">
34
+ <path d="M48 0H0V48" fill="none" stroke="#101828" stroke-opacity="0.045" stroke-width="1"/>
35
+ </pattern>
36
+ <marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="8" markerHeight="8" orient="auto">
37
+ <path d="M0 0L10 5L0 10Z" fill="#98A2B3"/>
38
+ </marker>
39
+ <style>
40
+ .title { font: 790 44px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #111827; letter-spacing: 0; }
41
+ .subtitle { font: 560 22px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #475467; letter-spacing: 0; }
42
+ .card-title { font: 760 26px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #111827; letter-spacing: 0; }
43
+ .card-copy { font: 520 17px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #475467; letter-spacing: 0; }
44
+ .tag { font: 800 15px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #FFFFFF; letter-spacing: 0.04em; }
45
+ .pill { font: 760 16px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #344054; letter-spacing: 0; }
46
+ .dark { font: 760 19px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #FFFFFF; letter-spacing: 0; }
47
+ .dark-muted { font: 560 16px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #D0D5DD; letter-spacing: 0; }
48
+ </style>
49
+ </defs>
50
+
51
+ <rect width="1600" height="560" rx="36" fill="url(#marketBg)"/>
52
+ <rect width="1600" height="560" rx="36" fill="url(#grid)"/>
53
+ <rect width="1600" height="560" rx="36" fill="url(#marketGlowTeal)"/>
54
+ <rect width="1600" height="560" rx="36" fill="url(#marketGlowGold)"/>
55
+
56
+ <g transform="translate(104 70)">
57
+ <text class="title" x="0" y="0">Build skills people can buy, trust, and install</text>
58
+ <text class="subtitle" x="0" y="42">Community is the open foundation. Cloud adds managed marketplace, checkout, and creator earnings.</text>
59
+ </g>
60
+
61
+ <g transform="translate(104 158)">
62
+ <g filter="url(#softShadow)">
63
+ <rect x="0" y="0" width="326" height="218" rx="8" fill="#FFFFFF" stroke="#E4E7EC"/>
64
+ <rect x="24" y="24" width="108" height="34" rx="17" fill="url(#teal)"/>
65
+ <text class="tag" x="78" y="47" text-anchor="middle">BUILD</text>
66
+ <text class="card-title" x="24" y="104">Create a skill</text>
67
+ <text class="card-copy" x="24" y="138">Turn hard-won expertise into</text>
68
+ <text class="card-copy" x="24" y="164">a versioned SKILL.md bundle</text>
69
+ <text class="card-copy" x="24" y="190">with provenance and docs.</text>
70
+ </g>
71
+
72
+ <line x1="352" y1="109" x2="424" y2="109" stroke="#98A2B3" stroke-width="3" marker-end="url(#arrow)"/>
73
+
74
+ <g transform="translate(448 0)" filter="url(#softShadow)">
75
+ <rect x="0" y="0" width="326" height="218" rx="8" fill="#FFFFFF" stroke="#E4E7EC"/>
76
+ <rect x="24" y="24" width="116" height="34" rx="17" fill="url(#blue)"/>
77
+ <text class="tag" x="82" y="47" text-anchor="middle">PUBLISH</text>
78
+ <text class="card-title" x="24" y="104">Trust first</text>
79
+ <text class="card-copy" x="24" y="138">Validation, trust review,</text>
80
+ <text class="card-copy" x="24" y="164">ownership, reviews, issues,</text>
81
+ <text class="card-copy" x="24" y="190">and catalog distribution.</text>
82
+ </g>
83
+
84
+ <line x1="800" y1="109" x2="872" y2="109" stroke="#98A2B3" stroke-width="3" marker-end="url(#arrow)"/>
85
+
86
+ <g transform="translate(896 0)" filter="url(#softShadow)">
87
+ <rect x="0" y="0" width="326" height="218" rx="8" fill="#FFFFFF" stroke="#E4E7EC"/>
88
+ <rect x="24" y="24" width="94" height="34" rx="17" fill="url(#gold)"/>
89
+ <text class="tag" x="71" y="47" text-anchor="middle">SELL</text>
90
+ <text class="card-title" x="24" y="104">Reach buyers</text>
91
+ <text class="card-copy" x="24" y="138">Cloud can handle discovery,</text>
92
+ <text class="card-copy" x="24" y="164">checkout, entitlements, and</text>
93
+ <text class="card-copy" x="24" y="190">purchase-backed trust.</text>
94
+ </g>
95
+
96
+ <line x1="1248" y1="109" x2="1320" y2="109" stroke="#98A2B3" stroke-width="3" marker-end="url(#arrow)"/>
97
+
98
+ <g transform="translate(1344 0)" filter="url(#softShadow)">
99
+ <rect x="0" y="0" width="172" height="218" rx="8" fill="#111827"/>
100
+ <circle cx="86" cy="58" r="34" fill="url(#gold)"/>
101
+ <text class="dark" x="86" y="68" text-anchor="middle">$</text>
102
+ <text class="dark" x="86" y="124" text-anchor="middle">Earn</text>
103
+ <text class="dark-muted" x="86" y="154" text-anchor="middle">useful skills</text>
104
+ <text class="dark-muted" x="86" y="178" text-anchor="middle">compound</text>
105
+ </g>
106
+ </g>
107
+
108
+ <g transform="translate(250 430)" filter="url(#softShadow)">
109
+ <rect x="0" y="0" width="1100" height="64" rx="8" fill="#FFFFFF" stroke="#E4E7EC"/>
110
+ <rect x="24" y="17" width="112" height="30" rx="15" fill="#E8F8F5" stroke="#19C6A7"/>
111
+ <text class="pill" x="80" y="38" text-anchor="middle" fill="#027A63">Community</text>
112
+ <text class="card-copy" x="158" y="38">portable, agent-ready foundation</text>
113
+ <rect x="612" y="17" width="74" height="30" rx="15" fill="#EEF1FF" stroke="#5368F6"/>
114
+ <text class="pill" x="649" y="38" text-anchor="middle" fill="#3445D8">Cloud</text>
115
+ <text class="card-copy" x="710" y="38">managed marketplace and monetization layer</text>
116
+ </g>
117
+ </svg>
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "skills-layer",
3
+ "version": "0.1.0",
4
+ "private": false,
5
+ "type": "module",
6
+ "description": "Public CLI for Skills Layer Cloud.",
7
+ "homepage": "https://skills-layer.com",
8
+ "keywords": [
9
+ "skills",
10
+ "mcp",
11
+ "cli",
12
+ "agents",
13
+ "codex",
14
+ "cloud",
15
+ "marketplace"
16
+ ],
17
+ "bin": {
18
+ "skills-layer": "bin/skills-layer.js"
19
+ },
20
+ "files": [
21
+ "bin/skills-layer.js",
22
+ "public/skills-layer-public.mjs",
23
+ "scripts/postinstall.mjs",
24
+ "scripts/skills-layer.mjs",
25
+ "docs/assets/*.svg"
26
+ ],
27
+ "engines": {
28
+ "node": ">=22"
29
+ },
30
+ "publishConfig": {
31
+ "access": "public"
32
+ },
33
+ "scripts": {
34
+ "postinstall": "node scripts/postinstall.mjs"
35
+ },
36
+ "license": "SEE LICENSE IN LICENSE"
37
+ }