@klhapp/skillmux 1.10.0 → 1.11.1

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/CHANGELOG.md CHANGED
@@ -5,6 +5,50 @@ All notable changes to this project are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.11.1](https://github.com/klhq/skillmux/compare/v1.11.0...v1.11.1) (2026-09-03)
9
+
10
+
11
+ ### Added
12
+
13
+ * **cli:** install asks before writing to the vault ([#185](https://github.com/klhq/skillmux/issues/185)) ([7f12d02](https://github.com/klhq/skillmux/commit/7f12d02def0f306d963d37920f2407c8cffe1c04))
14
+
15
+
16
+ ### Fixed
17
+
18
+ * **cli:** reject full-vault agents on project attach, clarify agent vs target ([#184](https://github.com/klhq/skillmux/issues/184)) ([118aff5](https://github.com/klhq/skillmux/commit/118aff5f46fb9e83c8c0e068890b96fe0a02311d))
19
+ * **security:** gate install/update on scan findings, plus CLI help cleanup ([#182](https://github.com/klhq/skillmux/issues/182)) ([daffd8a](https://github.com/klhq/skillmux/commit/daffd8af89ebee1fbd4c05870c328baf747bbea3))
20
+
21
+ ## [1.11.0](https://github.com/klhq/skillmux/compare/v1.10.0...v1.11.0) (2026-09-02)
22
+
23
+
24
+ ### ⚠ BREAKING CHANGES
25
+
26
+ * **cli:** agent-based native setup — remove --target/--client vagueness, clearer rejections ([#172](https://github.com/klhq/skillmux/issues/172))
27
+
28
+ ### Added
29
+
30
+ * **cli:** add --register-mcp to auto-register skillmux ([#173](https://github.com/klhq/skillmux/issues/173)) ([55e6e33](https://github.com/klhq/skillmux/commit/55e6e33a71abdfb2b340cdf2634f47db6a0fcff6))
31
+ * **cli:** agent-based native setup — remove --target/--client vagueness, clearer rejections ([#172](https://github.com/klhq/skillmux/issues/172)) ([cf5a346](https://github.com/klhq/skillmux/commit/cf5a346a3374ea217f7ffd17aba9495439b37f87))
32
+ * **cli:** project init --register-mcp for project-scoped MCP + instructions ([#176](https://github.com/klhq/skillmux/issues/176)) ([a1e5e3b](https://github.com/klhq/skillmux/commit/a1e5e3b43cd65b64741528e9cbaed0770d1637b7))
33
+
34
+
35
+ ### Fixed
36
+
37
+ * **cli:** four consistency bugs found in a CLI audit ([#177](https://github.com/klhq/skillmux/issues/177)) ([a3aa008](https://github.com/klhq/skillmux/commit/a3aa0082b8d5dd6f36a0bf527bfaddb43075bb7d))
38
+ * **cli:** guided init prompts for vault path instead of guessing ([#175](https://github.com/klhq/skillmux/issues/175)) ([2fa224c](https://github.com/klhq/skillmux/commit/2fa224ce7887a19bc4bbb59b626926c13f3d7284))
39
+ * **cli:** reject config init cleanly for remote targets, add classification registry ([#170](https://github.com/klhq/skillmux/issues/170)) ([9e6da95](https://github.com/klhq/skillmux/commit/9e6da95a386230e03dc94e0c8cbaa6d622a4d3f5))
40
+
41
+
42
+ ### Changed
43
+
44
+ * **cli:** consolidate per-agent data into one registry ([#179](https://github.com/klhq/skillmux/issues/179)) ([9af61da](https://github.com/klhq/skillmux/commit/9af61da4e181fc8c1ae5259cf7179d60050bf5b9))
45
+ * **cli:** one meaning per word — finish the target/context split ([#180](https://github.com/klhq/skillmux/issues/180)) ([1714daa](https://github.com/klhq/skillmux/commit/1714daa63a3429ffe6db090fc25a3e018026d85e))
46
+
47
+
48
+ ### Chores
49
+
50
+ * pin next release to 1.11.0 ([#178](https://github.com/klhq/skillmux/issues/178)) ([0193952](https://github.com/klhq/skillmux/commit/01939522b550b40ee9bfa6981ea359d17bd55897))
51
+
8
52
  ## [1.10.0](https://github.com/klhq/skillmux/compare/v1.9.3...v1.10.0) (2026-09-01)
9
53
 
10
54
 
package/README.md CHANGED
@@ -12,9 +12,9 @@
12
12
  <a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
13
13
  </p>
14
14
 
15
- <p align="center"><strong>One skill vault. Every AI coding client. Nothing lost in translation.</strong></p>
15
+ <p align="center"><strong>One skill vault. Every AI coding agent. Nothing lost in translation.</strong></p>
16
16
 
17
- Every AI coding client wants its own skill folder and its own format. Skillmux
17
+ Every AI coding agent wants its own skill folder and its own format. Skillmux
18
18
  manages [`SKILL.md`](https://agentskills.io) collections across all of them
19
19
  from one place. Keep one **vault source of truth** (the logical skill
20
20
  collection), pin a small set into native skill directories, and retrieve the
@@ -22,7 +22,7 @@ rest through MCP. A **vault checkout** is a physical copy of that collection.
22
22
  On one machine, `~/skills` can be both the source of truth and its checkout.
23
23
 
24
24
  For a shared topology, the Git-backed vault source of truth has a checkout on
25
- each client machine, where the Skillmux CLI creates native pins, and a checkout
25
+ each agent machine, where the Skillmux CLI creates native pins, and a checkout
26
26
  on the server, where Skillmux server exposes HTTP MCP. Skillmux does not pull,
27
27
  push, replicate, or determine freshness between checkouts; Git and the
28
28
  deployment process own replication and freshness. See
@@ -40,7 +40,7 @@ See [Configuration](docs/configuration.md#machine-config-bootstrap) and
40
40
 
41
41
  Choose a setup by the job:
42
42
 
43
- 1. Need native skills or local MCP for one client? Install the **Skillmux CLI**.
43
+ 1. Need native skills or local MCP for one agent? Install the **Skillmux CLI**.
44
44
  2. On Linux when Bun is undesirable? Use the **standalone Linux executable**;
45
45
  it is the same Skillmux CLI.
46
46
  3. Need one shared HTTP MCP service? Deploy the **full image**, the
@@ -49,7 +49,7 @@ Choose a setup by the job:
49
49
  retrieval? Use the **slim image**; see [Deployment](docs/deployment.md).
50
50
 
51
51
  For native pins and shared retrieval, run the Skillmux CLI on the machines that own
52
- client directories and one shared server for routed retrieval. MCP-only
52
+ agent directories and one shared server for routed retrieval. MCP-only
53
53
  clients connect over HTTP and do not need the Skillmux CLI.
54
54
 
55
55
  Manage the server's vault checkout outside the container. Use the CLI for
@@ -126,19 +126,19 @@ skillmux sync
126
126
  skillmux doctor
127
127
  ```
128
128
 
129
- The planner detects clients, asks which skills belong in the core tier, and
129
+ The planner detects agents, asks which skills belong in the core tier, and
130
130
  shows every write before confirmation. Use explicit flags for automation:
131
131
 
132
132
  ```sh
133
133
  skillmux init \
134
- --client claude-code \
135
- --client codex \
134
+ --agent claude-code \
135
+ --agent codex \
136
136
  --core csv-formatter \
137
137
  --dry-run
138
138
 
139
139
  skillmux init \
140
- --client claude-code \
141
- --client codex \
140
+ --agent claude-code \
141
+ --agent codex \
142
142
  --core csv-formatter \
143
143
  --yes
144
144
  ```
@@ -195,7 +195,7 @@ MCP clients authenticate only to `/mcp` with the MCP bearer token. Operators
195
195
  use a separate administrative bearer token for `/admin/v1/*`; neither token
196
196
  authorizes the other surface. Named CLI contexts administer the deployed server
197
197
  only. They never install, pin, synchronize, or otherwise manage skill
198
- directories on remote client machines. See [Deployment](docs/deployment.md#http-surfaces)
198
+ directories on remote agent machines. See [Deployment](docs/deployment.md#http-surfaces)
199
199
  for configuration and examples.
200
200
 
201
201
  ## Add and inspect skills
@@ -207,7 +207,14 @@ skillmux install owner/repo
207
207
  skillmux install owner/repo/path/to/skill
208
208
  ```
209
209
 
210
- Skillmux validates `SKILL.md` and scans candidate content before copying it into the vault. Use `--fail-on low|medium|high` to turn selected findings into an install gate.
210
+ Skillmux validates `SKILL.md` and scans candidate content before copying it
211
+ into the vault, then asks before writing. Pass `--yes` to approve up front;
212
+ a non-interactive run needs it, because `install` refuses to write unattended.
213
+
214
+ A high-severity finding aborts the install by default. `--fail-on
215
+ low|medium|high|none` moves that threshold, and it names the lowest severity
216
+ that still aborts, so a lower value is stricter: `low` aborts on low, medium
217
+ and high, while `none` installs despite any finding.
211
218
 
212
219
  Useful management commands:
213
220
 
@@ -254,16 +261,16 @@ Skillmux returns a ranked shortlist and lets the calling model choose. Endpoint
254
261
 
255
262
  Read [MCP routing](docs/mcp-routing.md) for transports, client instructions, retrieval modes, and the wire contract.
256
263
 
257
- ## Supported clients
264
+ ## Supported agents
258
265
 
259
- | Client | Native skill delivery | MCP setup |
266
+ | Agent | Native skill delivery | MCP setup |
260
267
  | --- | --- | --- |
261
- | Claude Code | `~/.claude/skills` | Configure in the client |
262
- | Codex | `$CODEX_HOME/skills` or `~/.codex/skills` | Configure in the client |
263
- | Gemini CLI, OpenCode, GitHub Copilot, Windsurf | `~/.agents/skills` | Configure in the client |
264
- | Antigravity | `~/.gemini/config/skills` | Configure in the client |
268
+ | Claude Code | `~/.claude/skills` | Configure in the agent |
269
+ | Codex | `$CODEX_HOME/skills` or `~/.codex/skills` | Configure in the agent |
270
+ | OpenCode, GitHub Copilot, Windsurf | Shared `~/.agents/skills` | Configure in the agent |
271
+ | Antigravity | `~/.gemini/config/skills` | Configure in the agent |
265
272
  | Goose, Hermes | Manual full-vault setup | Manual registration |
266
- | Custom clients | Any directory through a custom target | Stdio or Streamable HTTP |
273
+ | Custom agents | Any directory through a custom target | Stdio or Streamable HTTP |
267
274
 
268
275
  Skillmux preserves existing instruction files and unmanaged target content. Run `skillmux init --dry-run` to inspect every planned filesystem change.
269
276
 
package/docs/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Skillmux documentation
2
2
 
3
3
  Skillmux manages one `SKILL.md` vault source of truth: the logical skill
4
- collection. A vault checkout is a physical copy used by a client machine or
4
+ collection. A vault checkout is a physical copy used by an agent machine or
5
5
  server. On one machine, `~/skills` can be both. Choose a workflow based on
6
6
  where skills need to appear and where Skillmux should run.
7
7
 
@@ -19,7 +19,7 @@ where skills need to appear and where Skillmux should run.
19
19
 
20
20
  You can combine native management and local MCP retrieval on one machine. For
21
21
  native pins plus shared retrieval, run Skillmux CLI on each machine that owns
22
- client directories and deploy Skillmux server for HTTP MCP. The Bun package is
22
+ agent directories and deploy Skillmux server for HTTP MCP. The Bun package is
23
23
  the cross-platform CLI installation method; the standalone Linux executable is
24
24
  its Linux alternative. Git and the deployment process, not Skillmux, replicate
25
25
  vault checkouts and determine their freshness; see
@@ -38,7 +38,7 @@ to customize behavior; see [Configuration](configuration.md#machine-config-boots
38
38
 
39
39
  The MCP and administrative surfaces use separate bearer tokens; possession of
40
40
  one does not grant access to the other. A named CLI context administers the
41
- deployed server only, never remote client skill directories. See
41
+ deployed server only, never remote agent skill directories. See
42
42
  [Deployment](deployment.md#http-surfaces) for authentication and examples.
43
43
 
44
44
  ## Learn the model
@@ -4,10 +4,10 @@
4
4
 
5
5
  <defs>
6
6
  <filter id="shadow" x="-15%" y="-15%" width="130%" height="140%">
7
- <feDropShadow dx="0" dy="5" stdDeviation="8" flood-color="#000000" flood-opacity="0.35"/>
7
+ <feDropShadow dx="0" dy="4" stdDeviation="10" flood-color="#000000" flood-opacity="0.40"/>
8
8
  </filter>
9
9
  <marker id="arrow-teal" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto">
10
- <path d="M0 0L10 5L0 10Z" fill="#2dd4bf"/>
10
+ <path d="M0 0L10 5L0 10Z" fill="#34d399"/>
11
11
  </marker>
12
12
  <marker id="arrow-blue" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto">
13
13
  <path d="M0 0L10 5L0 10Z" fill="#60a5fa"/>
@@ -22,7 +22,7 @@
22
22
  .title {
23
23
  font-size: 27px;
24
24
  font-weight: 750;
25
- fill: #e2e8f0;
25
+ fill: #f1f5f9;
26
26
  }
27
27
  .subtitle {
28
28
  font-size: 16px;
@@ -51,7 +51,7 @@
51
51
  fill: #cbd5e1;
52
52
  }
53
53
  .mono-light {
54
- fill: #ffffff;
54
+ fill: #e2e8f0;
55
55
  }
56
56
  .chip {
57
57
  font-size: 12px;
@@ -61,100 +61,107 @@
61
61
  </style>
62
62
  </defs>
63
63
 
64
+ <!-- Canvas -->
64
65
  <rect width="1200" height="720" rx="24" fill="#0d1117"/>
65
- <rect x="1" y="1" width="1198" height="718" rx="23" fill="none" stroke="#30363d" stroke-width="2"/>
66
+ <rect x="1" y="1" width="1198" height="718" rx="23" fill="none" stroke="#21262d" stroke-width="2"/>
66
67
 
68
+ <!-- Header -->
67
69
  <text x="48" y="50" class="title">One vault source of truth, three ways to use Skillmux</text>
68
70
  <text x="48" y="78" class="subtitle">Git and deployment replicate checkouts; Skillmux uses each checkout where it runs.</text>
69
71
 
72
+ <!-- Vault card -->
70
73
  <g filter="url(#shadow)">
71
74
  <rect x="280" y="106" width="640" height="118" rx="18" fill="#161b22" stroke="#30363d" stroke-width="2"/>
72
- <circle cx="324" cy="147" r="18" fill="#334155"/>
73
- <path d="M314 141H327L333 147L327 153H314M320 135V159" fill="none" stroke="#ffffff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
75
+ <circle cx="324" cy="147" r="18" fill="#30363d"/>
76
+ <path d="M314 141H327L333 147L327 153H314M320 135V159" fill="none" stroke="#e2e8f0" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
74
77
  <text x="358" y="144" class="card-title">Git-backed vault source of truth</text>
75
78
  <text x="358" y="172" class="mono">SKILL.md per child directory</text>
76
79
  <text x="358" y="200" class="body">A checkout is a physical copy of it on one machine.</text>
77
- <rect x="751" y="155" width="137" height="34" rx="9" fill="#1e293b" stroke="#475569"/>
80
+ <rect x="751" y="155" width="137" height="34" rx="9" fill="#21262d" stroke="#30363d"/>
78
81
  <text x="819.5" y="177" text-anchor="middle" class="mono">skillmux.toml</text>
79
82
  </g>
80
83
 
81
- <path d="M520 224V252H410V277" fill="none" stroke="#2dd4bf" stroke-width="3" marker-end="url(#arrow-teal)"/>
84
+ <!-- Connector lines -->
85
+ <path d="M520 224V252H410V277" fill="none" stroke="#34d399" stroke-width="3" marker-end="url(#arrow-teal)"/>
82
86
  <path d="M720 224V252H980V277" fill="none" stroke="#a78bfa" stroke-width="3" marker-end="url(#arrow-violet)"/>
83
87
  <text x="394" y="270" text-anchor="end" class="body">client checkout</text>
84
88
  <text x="996" y="270" text-anchor="start" class="body">server checkout</text>
85
89
 
90
+ <!-- CLI card (emerald) -->
86
91
  <g filter="url(#shadow)">
87
- <rect x="40" y="284" width="740" height="302" rx="18" fill="#161b22" stroke="#0f766e" stroke-width="2"/>
88
- <rect x="62" y="306" width="124" height="26" rx="13" fill="#134e4a"/>
89
- <text x="124" y="324" text-anchor="middle" class="chip" fill="#5eead4">SKILLMUX CLI</text>
92
+ <rect x="40" y="284" width="740" height="302" rx="18" fill="#161b22" stroke="#059669" stroke-width="2"/>
93
+ <rect x="62" y="306" width="124" height="26" rx="13" fill="#064e3b"/>
94
+ <text x="124" y="324" text-anchor="middle" class="chip" fill="#34d399">SKILLMUX CLI</text>
90
95
  <text x="62" y="365" class="card-title">On one client machine</text>
91
96
  <text x="62" y="390" class="body">Manage native skills, add local MCP retrieval, or do both.</text>
92
97
 
93
- <rect x="62" y="414" width="276" height="48" rx="10" fill="#0f2e2b" stroke="#0f766e"/>
94
- <circle cx="85" cy="438" r="11" fill="#2dd4bf"/>
98
+ <rect x="62" y="414" width="276" height="48" rx="10" fill="#052e16" stroke="#059669"/>
99
+ <circle cx="85" cy="438" r="11" fill="#34d399"/>
95
100
  <text x="85" y="442.5" text-anchor="middle" style="font-size: 13px; font-weight: 750" fill="#0d1117">1</text>
96
101
  <text x="200" y="433" text-anchor="middle" class="label" style="font-size: 17px">Manage native skills</text>
97
102
  <text x="200" y="453" text-anchor="middle" class="mono">skillmux init · sync</text>
98
- <path d="M200 462V487" fill="none" stroke="#2dd4bf" stroke-width="2.5" marker-end="url(#arrow-teal)"/>
99
- <rect x="62" y="493" width="276" height="49" rx="10" fill="#1e293b" stroke="#475569"/>
103
+ <path d="M200 462V487" fill="none" stroke="#34d399" stroke-width="2.5" marker-end="url(#arrow-teal)"/>
104
+ <rect x="62" y="493" width="276" height="49" rx="10" fill="#21262d" stroke="#30363d"/>
100
105
  <text x="200" y="514" text-anchor="middle" class="label">Native skill directories</text>
101
106
  <text x="200" y="533" text-anchor="middle" class="body">managed core and project links</text>
102
107
 
103
108
  <text x="62" y="570" class="body">Install Skillmux CLI with</text>
104
- <rect x="270" y="550" width="85" height="27" rx="8" fill="#0f172a" stroke="#334155"/>
105
- <text x="312.5" y="568" text-anchor="middle" class="chip" style="font-size: 10px" fill="#ffffff">BUN PACKAGE</text>
106
- <rect x="361" y="550" width="87" height="27" rx="8" fill="#1e293b" stroke="#475569"/>
107
- <text x="404.5" y="561" text-anchor="middle" class="chip" style="font-size: 10px" fill="#cbd5e1"><tspan x="404.5">LINUX</tspan><tspan x="404.5" dy="11">EXECUTABLE</tspan></text>
109
+ <rect x="270" y="550" width="85" height="27" rx="8" fill="#30363d" stroke="#444c56"/>
110
+ <text x="312.5" y="568" text-anchor="middle" class="chip" style="font-size: 10px" fill="#e2e8f0">BUN PACKAGE</text>
111
+ <rect x="361" y="550" width="87" height="27" rx="8" fill="#21262d" stroke="#30363d"/>
112
+ <text x="404.5" y="561" text-anchor="middle" class="chip" style="font-size: 10px" fill="#94a3b8"><tspan x="404.5">LINUX</tspan><tspan x="404.5" dy="11">EXECUTABLE</tspan></text>
108
113
  </g>
109
114
 
115
+ <!-- MCP retrieval sub-card (blue) -->
110
116
  <g filter="url(#shadow)">
111
- <rect x="420" y="414" width="338" height="128" rx="10" fill="#172554" stroke="#3b82f6"/>
117
+ <rect x="420" y="414" width="338" height="128" rx="10" fill="#0c1929" stroke="#2563eb"/>
112
118
  <circle cx="453" cy="435" r="11" fill="#60a5fa"/>
113
119
  <text x="453" y="439.5" text-anchor="middle" style="font-size: 13px; font-weight: 750" fill="#0d1117">2</text>
114
120
  <text x="476" y="441" class="label" style="font-size: 17px">Add local MCP retrieval</text>
115
121
  <text x="442" y="463" class="body">Reaches the whole indexed vault on demand.</text>
116
122
 
117
- <rect x="442" y="475" width="92" height="48" rx="10" fill="#1e293b" stroke="#475569"/>
123
+ <rect x="442" y="475" width="92" height="48" rx="10" fill="#21262d" stroke="#30363d"/>
118
124
  <text x="488" y="505" text-anchor="middle" class="label">AI client</text>
119
125
  <path d="M534 499H578" fill="none" stroke="#60a5fa" stroke-width="2.5" marker-end="url(#arrow-blue)"/>
120
126
  <text x="559" y="489" text-anchor="middle" class="body">stdio</text>
121
- <rect x="584" y="470" width="152" height="62" rx="10" fill="#161b22" stroke="#3b82f6"/>
127
+ <rect x="584" y="470" width="152" height="62" rx="10" fill="#161b22" stroke="#2563eb"/>
122
128
  <text x="660" y="492" text-anchor="middle" class="mono">skillmux serve</text>
123
129
  <text x="660" y="511" text-anchor="middle" class="body">default: FTS5 +</text>
124
130
  <text x="660" y="527" text-anchor="middle" class="body">local GTE-small</text>
125
-
126
131
  </g>
127
132
 
133
+ <!-- Server card (violet) -->
128
134
  <g filter="url(#shadow)">
129
135
  <rect x="800" y="284" width="360" height="302" rx="18" fill="#161b22" stroke="#7c3aed" stroke-width="2"/>
130
- <rect x="822" y="306" width="136" height="26" rx="13" fill="#312e81"/>
131
- <text x="890" y="324" text-anchor="middle" class="chip" fill="#c4b5fd">SKILLMUX SERVER</text>
136
+ <rect x="822" y="306" width="136" height="26" rx="13" fill="#2e1065"/>
137
+ <text x="890" y="324" text-anchor="middle" class="chip" fill="#a78bfa">SKILLMUX SERVER</text>
132
138
  <circle cx="833" cy="358" r="11" fill="#a78bfa"/>
133
139
  <text x="833" y="362.5" text-anchor="middle" style="font-size: 13px; font-weight: 750" fill="#0d1117">3</text>
134
140
  <text x="856" y="365" class="card-title">Run a shared MCP service</text>
135
141
  <text x="822" y="390" class="body">Read a server checkout to serve several clients.</text>
136
142
 
137
- <rect x="822" y="414" width="92" height="48" rx="10" fill="#1e293b" stroke="#475569"/>
143
+ <rect x="822" y="414" width="92" height="48" rx="10" fill="#21262d" stroke="#30363d"/>
138
144
  <text x="868" y="435" text-anchor="middle" class="label">AI clients</text>
139
145
  <text x="868" y="453" text-anchor="middle" class="body">one or more</text>
140
146
  <path d="M914 438H963" fill="none" stroke="#a78bfa" stroke-width="2.5" marker-end="url(#arrow-violet)"/>
141
147
  <text x="939" y="428" text-anchor="middle" class="body">HTTP</text>
142
- <rect x="969" y="414" width="169" height="48" rx="10" fill="#2e1065" stroke="#7c3aed"/>
148
+ <rect x="969" y="414" width="169" height="48" rx="10" fill="#1e0a3c" stroke="#7c3aed"/>
143
149
  <text x="1053.5" y="435" text-anchor="middle" class="label">Skillmux server</text>
144
150
  <text x="1053.5" y="453" text-anchor="middle" class="body" style="font-size: 13px">Streamable HTTP /mcp</text>
145
151
 
146
- <rect x="822" y="484" width="148" height="58" rx="10" fill="#2e1065" stroke="#7c3aed"/>
152
+ <rect x="822" y="484" width="148" height="58" rx="10" fill="#1e0a3c" stroke="#7c3aed"/>
147
153
  <text x="896" y="507" text-anchor="middle" class="label">Full image</text>
148
154
  <text x="896" y="530" text-anchor="middle" class="body">GTE-small included</text>
149
- <rect x="982" y="484" width="156" height="58" rx="10" fill="#1e293b" stroke="#475569"/>
155
+ <rect x="982" y="484" width="156" height="58" rx="10" fill="#21262d" stroke="#30363d"/>
150
156
  <text x="1060" y="507" text-anchor="middle" class="label">Slim image</text>
151
157
  <text x="1060" y="530" text-anchor="middle" class="body">remote or lexical</text>
152
158
 
153
159
  <text x="822" y="570" class="body">Full image is the default deployment.</text>
154
160
  </g>
155
161
 
156
- <rect x="420" y="608" width="740" height="82" rx="14" fill="#1e293b"/>
157
- <text x="444" y="633" class="chip" fill="#cbd5e1">MCP TOOL CONTRACT · STDIO + HTTP</text>
162
+ <!-- Footer / MCP contract bar -->
163
+ <rect x="420" y="608" width="740" height="82" rx="14" fill="#161b22" stroke="#21262d" stroke-width="1.5"/>
164
+ <text x="444" y="633" class="chip" fill="#64748b">MCP TOOL CONTRACT · STDIO + HTTP</text>
158
165
  <text x="444" y="655" class="mono mono-light" style="font-size: 12px">resolve_skill → lexical + vector → RRF → optional rerank → top_k → ranked candidates</text>
159
166
  <text x="444" y="677" class="mono mono-light" style="font-size: 12px">fetch_skill → current SKILL.md bytes + SHA-256</text>
160
167
  </svg>
@@ -4,10 +4,10 @@
4
4
 
5
5
  <defs>
6
6
  <filter id="shadow" x="-15%" y="-15%" width="130%" height="140%">
7
- <feDropShadow dx="0" dy="5" stdDeviation="8" flood-color="#0f172a" flood-opacity="0.10"/>
7
+ <feDropShadow dx="0" dy="4" stdDeviation="8" flood-color="#94a3b8" flood-opacity="0.18"/>
8
8
  </filter>
9
9
  <marker id="arrow-teal" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto">
10
- <path d="M0 0L10 5L0 10Z" fill="#0f766e"/>
10
+ <path d="M0 0L10 5L0 10Z" fill="#059669"/>
11
11
  </marker>
12
12
  <marker id="arrow-blue" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto">
13
13
  <path d="M0 0L10 5L0 10Z" fill="#2563eb"/>
@@ -27,7 +27,7 @@
27
27
  .subtitle {
28
28
  font-size: 16px;
29
29
  font-weight: 400;
30
- fill: #475569;
30
+ fill: #64748b;
31
31
  }
32
32
  .card-title {
33
33
  font-size: 21px;
@@ -42,7 +42,7 @@
42
42
  .body {
43
43
  font-size: 14px;
44
44
  font-weight: 400;
45
- fill: #475569;
45
+ fill: #64748b;
46
46
  }
47
47
  .mono {
48
48
  font-family: "DejaVu Sans Mono", Consolas, monospace;
@@ -51,7 +51,7 @@
51
51
  fill: #1e293b;
52
52
  }
53
53
  .mono-light {
54
- fill: #ffffff;
54
+ fill: #e2e8f0;
55
55
  }
56
56
  .chip {
57
57
  font-size: 12px;
@@ -61,14 +61,17 @@
61
61
  </style>
62
62
  </defs>
63
63
 
64
+ <!-- Canvas -->
64
65
  <rect width="1200" height="720" rx="24" fill="#f8fafc"/>
65
66
  <rect x="1" y="1" width="1198" height="718" rx="23" fill="none" stroke="#e2e8f0" stroke-width="2"/>
66
67
 
68
+ <!-- Header -->
67
69
  <text x="48" y="50" class="title">One vault source of truth, three ways to use Skillmux</text>
68
70
  <text x="48" y="78" class="subtitle">Git and deployment replicate checkouts; Skillmux uses each checkout where it runs.</text>
69
71
 
72
+ <!-- Vault card -->
70
73
  <g filter="url(#shadow)">
71
- <rect x="280" y="106" width="640" height="118" rx="18" fill="#ffffff" stroke="#cbd5e1" stroke-width="2"/>
74
+ <rect x="280" y="106" width="640" height="118" rx="18" fill="#ffffff" stroke="#e2e8f0" stroke-width="2"/>
72
75
  <circle cx="324" cy="147" r="18" fill="#0f172a"/>
73
76
  <path d="M314 141H327L333 147L327 153H314M320 135V159" fill="none" stroke="#ffffff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
74
77
  <text x="358" y="144" class="card-title">Git-backed vault source of truth</text>
@@ -78,35 +81,38 @@
78
81
  <text x="819.5" y="177" text-anchor="middle" class="mono">skillmux.toml</text>
79
82
  </g>
80
83
 
81
- <path d="M520 224V252H410V277" fill="none" stroke="#0f766e" stroke-width="3" marker-end="url(#arrow-teal)"/>
84
+ <!-- Connector lines -->
85
+ <path d="M520 224V252H410V277" fill="none" stroke="#059669" stroke-width="3" marker-end="url(#arrow-teal)"/>
82
86
  <path d="M720 224V252H980V277" fill="none" stroke="#7c3aed" stroke-width="3" marker-end="url(#arrow-violet)"/>
83
87
  <text x="394" y="270" text-anchor="end" class="body">client checkout</text>
84
88
  <text x="996" y="270" text-anchor="start" class="body">server checkout</text>
85
89
 
90
+ <!-- CLI card (emerald) -->
86
91
  <g filter="url(#shadow)">
87
- <rect x="40" y="284" width="740" height="302" rx="18" fill="#ffffff" stroke="#99d5cc" stroke-width="2"/>
88
- <rect x="62" y="306" width="124" height="26" rx="13" fill="#ccfbf1"/>
89
- <text x="124" y="324" text-anchor="middle" class="chip" fill="#115e59">SKILLMUX CLI</text>
92
+ <rect x="40" y="284" width="740" height="302" rx="18" fill="#ffffff" stroke="#6ee7b7" stroke-width="2"/>
93
+ <rect x="62" y="306" width="124" height="26" rx="13" fill="#d1fae5"/>
94
+ <text x="124" y="324" text-anchor="middle" class="chip" fill="#065f46">SKILLMUX CLI</text>
90
95
  <text x="62" y="365" class="card-title">On one client machine</text>
91
96
  <text x="62" y="390" class="body">Manage native skills, add local MCP retrieval, or do both.</text>
92
97
 
93
- <rect x="62" y="414" width="276" height="48" rx="10" fill="#f0fdfa" stroke="#99d5cc"/>
94
- <circle cx="85" cy="438" r="11" fill="#0f766e"/>
98
+ <rect x="62" y="414" width="276" height="48" rx="10" fill="#ecfdf5" stroke="#6ee7b7"/>
99
+ <circle cx="85" cy="438" r="11" fill="#059669"/>
95
100
  <text x="85" y="442.5" text-anchor="middle" style="font-size: 13px; font-weight: 750" fill="#ffffff">1</text>
96
101
  <text x="200" y="433" text-anchor="middle" class="label" style="font-size: 17px">Manage native skills</text>
97
102
  <text x="200" y="453" text-anchor="middle" class="mono">skillmux init · sync</text>
98
- <path d="M200 462V487" fill="none" stroke="#0f766e" stroke-width="2.5" marker-end="url(#arrow-teal)"/>
103
+ <path d="M200 462V487" fill="none" stroke="#059669" stroke-width="2.5" marker-end="url(#arrow-teal)"/>
99
104
  <rect x="62" y="493" width="276" height="49" rx="10" fill="#f8fafc" stroke="#cbd5e1"/>
100
105
  <text x="200" y="514" text-anchor="middle" class="label">Native skill directories</text>
101
106
  <text x="200" y="533" text-anchor="middle" class="body">managed core and project links</text>
102
107
 
103
108
  <text x="62" y="570" class="body">Install Skillmux CLI with</text>
104
109
  <rect x="270" y="550" width="85" height="27" rx="8" fill="#0f172a"/>
105
- <text x="312.5" y="568" text-anchor="middle" class="chip" style="font-size: 10px" fill="#ffffff">BUN PACKAGE</text>
110
+ <text x="312.5" y="568" text-anchor="middle" class="chip" style="font-size: 10px" fill="#f1f5f9">BUN PACKAGE</text>
106
111
  <rect x="361" y="550" width="87" height="27" rx="8" fill="#f1f5f9" stroke="#cbd5e1"/>
107
112
  <text x="404.5" y="561" text-anchor="middle" class="chip" style="font-size: 10px" fill="#334155"><tspan x="404.5">LINUX</tspan><tspan x="404.5" dy="11">EXECUTABLE</tspan></text>
108
113
  </g>
109
114
 
115
+ <!-- MCP retrieval sub-card (blue) -->
110
116
  <g filter="url(#shadow)">
111
117
  <rect x="420" y="414" width="338" height="128" rx="10" fill="#eff6ff" stroke="#93c5fd"/>
112
118
  <circle cx="453" cy="435" r="11" fill="#2563eb"/>
@@ -122,13 +128,13 @@
122
128
  <text x="660" y="492" text-anchor="middle" class="mono">skillmux serve</text>
123
129
  <text x="660" y="511" text-anchor="middle" class="body">default: FTS5 +</text>
124
130
  <text x="660" y="527" text-anchor="middle" class="body">local GTE-small</text>
125
-
126
131
  </g>
127
132
 
133
+ <!-- Server card (violet) -->
128
134
  <g filter="url(#shadow)">
129
135
  <rect x="800" y="284" width="360" height="302" rx="18" fill="#ffffff" stroke="#c4b5fd" stroke-width="2"/>
130
136
  <rect x="822" y="306" width="136" height="26" rx="13" fill="#ede9fe"/>
131
- <text x="890" y="324" text-anchor="middle" class="chip" fill="#6d28d9">SKILLMUX SERVER</text>
137
+ <text x="890" y="324" text-anchor="middle" class="chip" fill="#5b21b6">SKILLMUX SERVER</text>
132
138
  <circle cx="833" cy="358" r="11" fill="#7c3aed"/>
133
139
  <text x="833" y="362.5" text-anchor="middle" style="font-size: 13px; font-weight: 750" fill="#ffffff">3</text>
134
140
  <text x="856" y="365" class="card-title">Run a shared MCP service</text>
@@ -153,8 +159,9 @@
153
159
  <text x="822" y="570" class="body">Full image is the default deployment.</text>
154
160
  </g>
155
161
 
156
- <rect x="420" y="608" width="740" height="82" rx="14" fill="#0f172a"/>
157
- <text x="444" y="633" class="chip" fill="#cbd5e1">MCP TOOL CONTRACT · STDIO + HTTP</text>
162
+ <!-- Footer / MCP contract bar -->
163
+ <rect x="420" y="608" width="740" height="82" rx="14" fill="#1e293b"/>
164
+ <text x="444" y="633" class="chip" fill="#94a3b8">MCP TOOL CONTRACT · STDIO + HTTP</text>
158
165
  <text x="444" y="655" class="mono mono-light" style="font-size: 12px">resolve_skill → lexical + vector → RRF → optional rerank → top_k → ranked candidates</text>
159
166
  <text x="444" y="677" class="mono mono-light" style="font-size: 12px">fetch_skill → current SKILL.md bytes + SHA-256</text>
160
167
  </svg>