skillstat 0.1.0__tar.gz

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.
@@ -0,0 +1,28 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.egg-info/
5
+ dist/
6
+ build/
7
+ *.egg
8
+ .eggs/
9
+
10
+ # Virtual environments
11
+ .venv/
12
+ venv/
13
+ env/
14
+
15
+ # IDE
16
+ .idea/
17
+ .vscode/
18
+ *.swp
19
+ *.swo
20
+
21
+ # OS
22
+ .DS_Store
23
+ Thumbs.db
24
+
25
+ # Testing
26
+ .pytest_cache/
27
+ .coverage
28
+ htmlcov/
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Qin-Yu Chen
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,111 @@
1
+ Metadata-Version: 2.4
2
+ Name: skillstat
3
+ Version: 0.1.0
4
+ Summary: Diagnose, audit, and optimize your AI agent skill usage across tools
5
+ Project-URL: Homepage, https://github.com/QY0831/skillstat
6
+ Project-URL: Repository, https://github.com/QY0831/skillstat
7
+ Project-URL: Issues, https://github.com/QY0831/skillstat/issues
8
+ Author: Qin-Yu Chen
9
+ License-Expression: MIT
10
+ License-File: LICENSE
11
+ Keywords: agent,ai,analytics,claude,cli,copilot,skills
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Topic :: Software Development :: Quality Assurance
18
+ Requires-Python: >=3.10
19
+ Requires-Dist: inquirerpy>=0.3.4
20
+ Requires-Dist: rich>=13.0
21
+ Description-Content-Type: text/markdown
22
+
23
+ # skillstat 🩺
24
+
25
+ Diagnose, audit, and optimize your AI agent skill usage across tools.
26
+
27
+ ## Install
28
+
29
+ ```bash
30
+ # Option 1: pipx (recommended — isolated env, global command)
31
+ pipx install skillstat
32
+
33
+ # Option 2: curl one-liner
34
+ curl -fsSL https://raw.githubusercontent.com/QY0831/skillstat/main/install.sh | bash
35
+
36
+ # Option 3: pip
37
+ pip install skillstat
38
+ ```
39
+
40
+ ## Usage
41
+
42
+ ```bash
43
+ # Interactive mode (prompts for source, time window, etc.)
44
+ skillstat
45
+
46
+ # Non-interactive
47
+ skillstat --source copilot claude --all
48
+ skillstat --source copilot --days 30 --json
49
+ skillstat --source opencode --all --limit 20
50
+ ```
51
+
52
+ ## What it does
53
+
54
+ ```
55
+ ⚡ skillstat
56
+ ✓ Found 100 installed skills
57
+ ✓ Health check: 95 healthy, 5 with issues
58
+ ✓ GitHub Copilot: 70 skill events
59
+ ✓ Claude Code: 25 skill events
60
+
61
+ ╭───────────────── 📊 Skill Usage Report ──────────────────╮
62
+ │ Sources: GitHub Copilot, Claude Code │
63
+ │ Skills: 100 installed, 28 used, 72 unused │
64
+ ╰──────────────────────────────────────────────────────────╯
65
+
66
+ # Skill Loads Sessions Projects
67
+ 1 diagnose 18 15 7 ████████
68
+ 2 aws-cdk 7 6 5 ███░░░░░
69
+ ...
70
+
71
+ ╭───────────────── 🔍 Skill Audit ─────────────────────────╮
72
+ │ ⭐ MOST USED — last 4 weeks │
73
+ │ ▲ RISING — diagnose ↑1600% │
74
+ │ ⚠ STALE — find-skills (unused 28+ days) │
75
+ │ ◈ CROSS-PROJECT — diagnose (7 projects) │
76
+ │ ◇ ONE-OFF — aws-serverless (used once) │
77
+ ╰──────────────────────────────────────────────────────────╯
78
+ ```
79
+
80
+ ## Supported agents
81
+
82
+ | Agent | Storage | Detection method |
83
+ |-------|---------|-----------------|
84
+ | GitHub Copilot | `~/.copilot/session-store.db` | `<skill-context name="...">` |
85
+ | Claude Code | `~/.claude/` | Slash commands + `Skill` tool_use |
86
+ | Codex CLI | `~/.codex/sessions/` | `<name>X</name>` in responses |
87
+ | OpenCode | `~/.local/share/opencode/` | SQLite `tool='skill'` |
88
+ | Grok CLI | `~/.grok/sessions/` | `<command-name>` in updates |
89
+ | Droid CLI | `~/.factory/sessions/` | `Skill "X" is now active` |
90
+
91
+ ## Features
92
+
93
+ - **Health Check** — validates SKILL.md structure (name, description, file size)
94
+ - **Skill Audit** — classifies skills: most-used / rising / declining / stale / one-off / cross-project
95
+ - **Multi-source** — aggregates across all your AI tools in one report
96
+ - **JSON output** — `--json` for piping to jq, dashboards, CI
97
+ - **Zero config** — auto-detects installed agents, no setup needed
98
+
99
+ ## Skill directories scanned
100
+
101
+ ```
102
+ ~/.agents/skills/
103
+ ~/.claude/skills/
104
+ ~/.copilot/skills/
105
+ ~/.copilot/installed-plugins/
106
+ ~/.claude/plugins/
107
+ ```
108
+
109
+ ## License
110
+
111
+ MIT
@@ -0,0 +1,89 @@
1
+ # skillstat 🩺
2
+
3
+ Diagnose, audit, and optimize your AI agent skill usage across tools.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ # Option 1: pipx (recommended — isolated env, global command)
9
+ pipx install skillstat
10
+
11
+ # Option 2: curl one-liner
12
+ curl -fsSL https://raw.githubusercontent.com/QY0831/skillstat/main/install.sh | bash
13
+
14
+ # Option 3: pip
15
+ pip install skillstat
16
+ ```
17
+
18
+ ## Usage
19
+
20
+ ```bash
21
+ # Interactive mode (prompts for source, time window, etc.)
22
+ skillstat
23
+
24
+ # Non-interactive
25
+ skillstat --source copilot claude --all
26
+ skillstat --source copilot --days 30 --json
27
+ skillstat --source opencode --all --limit 20
28
+ ```
29
+
30
+ ## What it does
31
+
32
+ ```
33
+ ⚡ skillstat
34
+ ✓ Found 100 installed skills
35
+ ✓ Health check: 95 healthy, 5 with issues
36
+ ✓ GitHub Copilot: 70 skill events
37
+ ✓ Claude Code: 25 skill events
38
+
39
+ ╭───────────────── 📊 Skill Usage Report ──────────────────╮
40
+ │ Sources: GitHub Copilot, Claude Code │
41
+ │ Skills: 100 installed, 28 used, 72 unused │
42
+ ╰──────────────────────────────────────────────────────────╯
43
+
44
+ # Skill Loads Sessions Projects
45
+ 1 diagnose 18 15 7 ████████
46
+ 2 aws-cdk 7 6 5 ███░░░░░
47
+ ...
48
+
49
+ ╭───────────────── 🔍 Skill Audit ─────────────────────────╮
50
+ │ ⭐ MOST USED — last 4 weeks │
51
+ │ ▲ RISING — diagnose ↑1600% │
52
+ │ ⚠ STALE — find-skills (unused 28+ days) │
53
+ │ ◈ CROSS-PROJECT — diagnose (7 projects) │
54
+ │ ◇ ONE-OFF — aws-serverless (used once) │
55
+ ╰──────────────────────────────────────────────────────────╯
56
+ ```
57
+
58
+ ## Supported agents
59
+
60
+ | Agent | Storage | Detection method |
61
+ |-------|---------|-----------------|
62
+ | GitHub Copilot | `~/.copilot/session-store.db` | `<skill-context name="...">` |
63
+ | Claude Code | `~/.claude/` | Slash commands + `Skill` tool_use |
64
+ | Codex CLI | `~/.codex/sessions/` | `<name>X</name>` in responses |
65
+ | OpenCode | `~/.local/share/opencode/` | SQLite `tool='skill'` |
66
+ | Grok CLI | `~/.grok/sessions/` | `<command-name>` in updates |
67
+ | Droid CLI | `~/.factory/sessions/` | `Skill "X" is now active` |
68
+
69
+ ## Features
70
+
71
+ - **Health Check** — validates SKILL.md structure (name, description, file size)
72
+ - **Skill Audit** — classifies skills: most-used / rising / declining / stale / one-off / cross-project
73
+ - **Multi-source** — aggregates across all your AI tools in one report
74
+ - **JSON output** — `--json` for piping to jq, dashboards, CI
75
+ - **Zero config** — auto-detects installed agents, no setup needed
76
+
77
+ ## Skill directories scanned
78
+
79
+ ```
80
+ ~/.agents/skills/
81
+ ~/.claude/skills/
82
+ ~/.copilot/skills/
83
+ ~/.copilot/installed-plugins/
84
+ ~/.claude/plugins/
85
+ ```
86
+
87
+ ## License
88
+
89
+ MIT
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env bash
2
+ # skillstat installer — curl one-liner:
3
+ # curl -fsSL https://raw.githubusercontent.com/QY0831/skillstat/main/install.sh | bash
4
+ set -euo pipefail
5
+
6
+ REPO="user/skillstat"
7
+ INSTALL_DIR="${SKILLSTAT_INSTALL_DIR:-$HOME/.local/bin}"
8
+
9
+ echo "⚡ Installing skillstat..."
10
+
11
+ # Check Python version
12
+ if ! command -v python3 &>/dev/null; then
13
+ echo "❌ python3 not found. Please install Python 3.10+."
14
+ exit 1
15
+ fi
16
+
17
+ PY_VERSION=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")
18
+ PY_MAJOR=$(echo "$PY_VERSION" | cut -d. -f1)
19
+ PY_MINOR=$(echo "$PY_VERSION" | cut -d. -f2)
20
+
21
+ if [ "$PY_MAJOR" -lt 3 ] || { [ "$PY_MAJOR" -eq 3 ] && [ "$PY_MINOR" -lt 10 ]; }; then
22
+ echo "❌ Python 3.10+ required (found $PY_VERSION)"
23
+ exit 1
24
+ fi
25
+
26
+ # Prefer pipx if available
27
+ if command -v pipx &>/dev/null; then
28
+ echo "📦 Installing via pipx..."
29
+ pipx install skillstat 2>/dev/null || pipx upgrade skillstat
30
+ echo "✅ Installed! Run: skillstat"
31
+ exit 0
32
+ fi
33
+
34
+ # Fallback: pip install to user site + wrapper script
35
+ echo "📦 Installing via pip (user)..."
36
+ python3 -m pip install --user --quiet --break-system-packages skillstat 2>/dev/null \
37
+ || python3 -m pip install --user --quiet skillstat
38
+
39
+ # Ensure install dir exists
40
+ mkdir -p "$INSTALL_DIR"
41
+
42
+ # Create wrapper if not already on PATH via pip
43
+ if ! command -v skillstat &>/dev/null; then
44
+ WRAPPER="$INSTALL_DIR/skillstat"
45
+ cat > "$WRAPPER" << 'EOF'
46
+ #!/usr/bin/env python3
47
+ from skillstat.cli import main
48
+ raise SystemExit(main())
49
+ EOF
50
+ chmod +x "$WRAPPER"
51
+ echo "📍 Installed to $WRAPPER"
52
+
53
+ if [[ ":$PATH:" != *":$INSTALL_DIR:"* ]]; then
54
+ echo ""
55
+ echo "⚠️ Add to your PATH:"
56
+ echo " export PATH=\"$INSTALL_DIR:\$PATH\""
57
+ fi
58
+ fi
59
+
60
+ echo "✅ Done! Run: skillstat"
@@ -0,0 +1,33 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "skillstat"
7
+ version = "0.1.0"
8
+ description = "Diagnose, audit, and optimize your AI agent skill usage across tools"
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.10"
12
+ authors = [{ name = "Qin-Yu Chen" }]
13
+ keywords = ["ai", "agent", "skills", "copilot", "claude", "cli", "analytics"]
14
+ classifiers = [
15
+ "Development Status :: 4 - Beta",
16
+ "Environment :: Console",
17
+ "Intended Audience :: Developers",
18
+ "License :: OSI Approved :: MIT License",
19
+ "Programming Language :: Python :: 3",
20
+ "Topic :: Software Development :: Quality Assurance",
21
+ ]
22
+ dependencies = [
23
+ "rich>=13.0",
24
+ "InquirerPy>=0.3.4",
25
+ ]
26
+
27
+ [project.scripts]
28
+ skillstat = "skillstat.cli:main"
29
+
30
+ [project.urls]
31
+ Homepage = "https://github.com/QY0831/skillstat"
32
+ Repository = "https://github.com/QY0831/skillstat"
33
+ Issues = "https://github.com/QY0831/skillstat/issues"
@@ -0,0 +1,3 @@
1
+ """skillstat — AI agent skill usage analytics."""
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,4 @@
1
+ """Allow running as `python -m skillstat`."""
2
+ from skillstat.cli import main
3
+
4
+ raise SystemExit(main())