skill-mix 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/README.md ADDED
@@ -0,0 +1,64 @@
1
+ # Skills Manager
2
+
3
+ A management layer for AI agent skills — discover, install, scope, rate, and update skills across Cursor, Codex, and Claude Code.
4
+
5
+ All three tools follow the open [Agent Skills](https://agentskills.io/) standard (`SKILL.md`), but none solves the management problem: how to find the right skill, avoid duplicates, track where it came from, or know if it's any good.
6
+
7
+ ## Setup
8
+
9
+ Quick install Skills Manager, open the app, and launch the skill-picker modal:
10
+
11
+ ```bash
12
+ npx -y skill-mix obra/superpowers
13
+ ```
14
+
15
+ Preselect specific skills before the modal opens:
16
+
17
+ ```bash
18
+ npx -y skill-mix obra/superpowers workflow research
19
+ ```
20
+
21
+ Classic installer:
22
+
23
+ ```
24
+ curl -fsSL https://raw.githubusercontent.com/razbakov/skills-manager/main/scripts/install.sh | bash
25
+ ```
26
+
27
+ ## Usage
28
+
29
+ Run `skills` to launch application
30
+
31
+ Open/focus the app and trigger the skill-picker from CLI:
32
+
33
+ ```bash
34
+ skills set <owner/repo|github-url> [skill ...]
35
+ ```
36
+
37
+ ![Skills Manager desktop UI](docs/images/desktop-ui.png)
38
+
39
+ ## Build DMG (macOS)
40
+
41
+ ```
42
+ bun install
43
+ bun run dist:dmg
44
+ ```
45
+
46
+ This outputs a DMG installer in `release/`.
47
+
48
+ ## Problem
49
+
50
+ See **[Research](docs/research.md)** for how tools handle skills today, **[User Problems](docs/problems.md)** for 14 documented pain points, **[Landscape](docs/landscape.md)** for existing directories and tools, and **[Competitors](docs/competitors.md)** for detailed analysis of current solutions and their gaps.
51
+
52
+ - **Naming collisions** — Multiple skills share similar names or overlap in responsibility. Cursor has no detection; Codex shows both without merging; Claude Code overrides by scope precedence.
53
+ - **No development workflow** — No way to test, enable, or disable skills without editing files by hand (Codex has `config.toml`, but no UI).
54
+ - **Unknown provenance** — None of the three tools track where a skill came from, who wrote it, or how to update it.
55
+ - **Scattered collections** — Skills live in 3–6 different directories per tool with no unified view.
56
+ - **No quality signals** — No ratings, benchmarks, or reviews exist anywhere in the ecosystem.
57
+
58
+ ## Key Features
59
+
60
+ - **[Skill Registry](docs/registry.md)**: Search, browse, and install skills from a shared catalog with deduplication and conflict detection.
61
+ - **[Scope Management](docs/scopes.md)**: Enable or disable skills at three levels — personal, organization, and project — with clear precedence rules across all supported tools.
62
+ - **[Provenance Tracking](docs/provenance.md)**: Every skill records its source repo, author, version, and update channel.
63
+ - **[Quality Scores](docs/quality.md)**: Community and automated ratings for security, efficiency, and best practices, with benchmarks across models and harnesses.
64
+ - **[Development Mode](docs/dev-mode.md)**: GUI for authoring, testing, and previewing skills before publishing.
package/bin/skills ADDED
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ SOURCE_PATH="${BASH_SOURCE[0]}"
5
+ while [ -L "${SOURCE_PATH}" ]; do
6
+ SOURCE_DIR="$(cd -P -- "$(dirname -- "${SOURCE_PATH}")" && pwd)"
7
+ LINK_TARGET="$(readlink "${SOURCE_PATH}")"
8
+ if [[ "${LINK_TARGET}" == /* ]]; then
9
+ SOURCE_PATH="${LINK_TARGET}"
10
+ else
11
+ SOURCE_PATH="${SOURCE_DIR}/${LINK_TARGET}"
12
+ fi
13
+ done
14
+
15
+ SCRIPT_DIR="$(cd -P -- "$(dirname -- "${SOURCE_PATH}")" && pwd)"
16
+
17
+ resolve_bun() {
18
+ if command -v bun >/dev/null 2>&1; then
19
+ command -v bun
20
+ return 0
21
+ fi
22
+
23
+ if [ -n "${BUN_INSTALL:-}" ] && [ -x "${BUN_INSTALL%/}/bin/bun" ]; then
24
+ echo "${BUN_INSTALL%/}/bin/bun"
25
+ return 0
26
+ fi
27
+
28
+ if [ -x "${HOME}/.bun/bin/bun" ]; then
29
+ echo "${HOME}/.bun/bin/bun"
30
+ return 0
31
+ fi
32
+
33
+ echo "Unable to find Bun. Install Bun and ensure it is available on PATH: https://bun.sh/" >&2
34
+ exit 1
35
+ }
36
+
37
+ BUN_BIN="$(resolve_bun)"
38
+ exec "${BUN_BIN}" "${SCRIPT_DIR}/../src/index.ts" "$@"
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ SOURCE_PATH="${BASH_SOURCE[0]}"
5
+ while [ -L "${SOURCE_PATH}" ]; do
6
+ SOURCE_DIR="$(cd -P -- "$(dirname -- "${SOURCE_PATH}")" && pwd)"
7
+ LINK_TARGET="$(readlink "${SOURCE_PATH}")"
8
+ if [[ "${LINK_TARGET}" == /* ]]; then
9
+ SOURCE_PATH="${LINK_TARGET}"
10
+ else
11
+ SOURCE_PATH="${SOURCE_DIR}/${LINK_TARGET}"
12
+ fi
13
+ done
14
+
15
+ SCRIPT_DIR="$(cd -P -- "$(dirname -- "${SOURCE_PATH}")" && pwd)"
16
+ INSTALL_SCRIPT="${SCRIPT_DIR}/../scripts/install.sh"
17
+
18
+ if [ "$#" -eq 0 ]; then
19
+ echo "Usage: npx -y skill-mix <owner/repo|github-url> [skill ...]" >&2
20
+ exit 1
21
+ fi
22
+
23
+ "${INSTALL_SCRIPT}"
24
+
25
+ if [ -n "${SKILLS_MANAGER_GLOBAL_BIN_DIR:-}" ]; then
26
+ SKILLS_CMD_PATH="${SKILLS_MANAGER_GLOBAL_BIN_DIR%/}/skills"
27
+ elif [ -n "${BUN_INSTALL:-}" ]; then
28
+ SKILLS_CMD_PATH="${BUN_INSTALL%/}/bin/skills"
29
+ else
30
+ SKILLS_CMD_PATH="${HOME}/.bun/bin/skills"
31
+ fi
32
+
33
+ if [ -x "${SKILLS_CMD_PATH}" ]; then
34
+ exec "${SKILLS_CMD_PATH}" set "$@"
35
+ fi
36
+
37
+ if command -v skills >/dev/null 2>&1; then
38
+ exec "$(command -v skills)" set "$@"
39
+ fi
40
+
41
+ echo "Skills Manager was installed, but 'skills' command is unavailable." >&2
42
+ exit 1