@skilly-hand/skilly-hand 0.18.0 → 0.19.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/CHANGELOG.md CHANGED
@@ -16,6 +16,25 @@ All notable changes to this project are documented in this file.
16
16
  ### Removed
17
17
  - _None._
18
18
 
19
+ ## [0.19.0] - 2026-04-11
20
+ [View on npm](https://www.npmjs.com/package/@skilly-hand/skilly-hand/v/0.19.0)
21
+
22
+ ### Added
23
+ - Added `scripts/dependency-security-check.mjs` plus new npm script `security:deps` for strict dependency audit and outdated-package reporting.
24
+ - Added a full-screen Ink terminal UI for interactive CLI flows, including the new `--classic` fallback flag for plain text mode.
25
+ - Added dependency security report automation to the project-security GitHub Actions template (scheduled artifact workflow).
26
+
27
+ ### Changed
28
+ - Updated `security:check` to run strict dependency checks in addition to secret/config scanning.
29
+ - Updated project-security hook/CI assets to use shared `run_security_gates` flow.
30
+ - Updated CLI command routing and terminal rendering to support Ink-backed interactive sessions.
31
+
32
+ ### Fixed
33
+ - Expanded and refreshed interactive/terminal/script test coverage for the new UI and security flows.
34
+
35
+ ### Removed
36
+ - _None._
37
+
19
38
  ## [0.18.0] - 2026-04-08
20
39
  [View on npm](https://www.npmjs.com/package/@skilly-hand/skilly-hand/v/0.18.0)
21
40
 
package/README.md CHANGED
@@ -5,8 +5,8 @@
5
5
  ██╔════╝██║ ██╔╝██║██║ ██║ ╚██╗ ██╔╝ ██║ ██║██╔══██╗████╗ ██║██╔══██╗
6
6
  ╚█████╗ █████╔╝ ██║██║ ██║ ╚████╔╝ ███████║███████║██╔██╗ ██║██║ ██║
7
7
  ╚══██╗ ██╔═██╗ ██║██║ ██║ ╚██╔╝ ██╔══██║██╔══██║██║╚██╗██║██║ ██║
8
- ██████╔╝██║ ██╗██║███████╗███████╗ ██║ ██║ ██║██║ ██║██║ ╚████║██████╔╝
9
- ╚═════╝ ╚═╝ ╚═╝╚═╝╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝
8
+ ██████╔╝██║ ██╗██║███████╗███████╗ ██║ ██║ ██║██║ ██║██║ ╚████║██████╔╝
9
+ ╚═════╝ ╚═╝ ╚═╝╚═╝╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝
10
10
  ```
11
11
 
12
12
  **Portable AI agent skills. One CLI. Every coding assistant.**
@@ -36,7 +36,7 @@
36
36
  npx skilly-hand
37
37
  ```
38
38
 
39
- `npx skilly-hand` opens an interactive command launcher when running in a TTY.
39
+ `npx skilly-hand` opens a full-screen skilly-hand terminal UI when running in a TTY.
40
40
 
41
41
  ---
42
42
 
@@ -55,6 +55,7 @@ npx skilly-hand
55
55
  | Flag | Description |
56
56
  | ---- | ----------- |
57
57
  | `--json` | Emit machine-readable output and disable interactive prompts |
58
+ | `--classic` | Force plain text command mode and skip full-screen TUI |
58
59
  | `--yes`, `-y` | Skip confirmation prompts for mutating commands (`install`, `uninstall`) |
59
60
  | `--dry-run` | Preview install plan without writing files |
60
61
  | `--agent`, `-a <name>` | Target a specific assistant (repeatable; e.g. `--agent claude --agent cursor`) |
@@ -100,6 +101,11 @@ See [catalog/README.md](./catalog/README.md) for generated skill metadata.
100
101
  8. Smoke test after publish: `npx @skilly-hand/skilly-hand@<version> --help`.
101
102
  9. Verify npm metadata (README render, changelog, license, executable bin).
102
103
 
104
+ ### Security Automation
105
+
106
+ - `npm run security:check` runs repository secret/config checks plus strict dependency security checks.
107
+ - `npm run security:deps` runs strict dependency audit + outdated reporting only.
108
+
103
109
  ---
104
110
 
105
111
  ## Stack Detection
@@ -5,32 +5,5 @@ script_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
5
5
  # shellcheck source=/dev/null
6
6
  . "$script_dir/run-security-check.shared.sh"
7
7
 
8
- run_supply_chain_check() {
9
- if [ -f "pnpm-lock.yaml" ] && command -v pnpm >/dev/null 2>&1; then
10
- if ! pnpm audit --prod; then
11
- echo "[project-security] pnpm audit reported issues." >&2
12
- return 1
13
- fi
14
- return
15
- fi
16
-
17
- if [ -f "yarn.lock" ] && command -v yarn >/dev/null 2>&1; then
18
- if ! yarn npm audit; then
19
- echo "[project-security] yarn audit reported issues." >&2
20
- return 1
21
- fi
22
- return
23
- fi
24
-
25
- if [ -f "package-lock.json" ] && command -v npm >/dev/null 2>&1; then
26
- if ! npm audit --audit-level=high; then
27
- echo "[project-security] npm audit reported issues." >&2
28
- return 1
29
- fi
30
- return
31
- fi
32
- }
33
-
34
8
  echo "[project-security] running CI security gate..."
35
- run_security_check
36
- run_supply_chain_check
9
+ run_security_gates
@@ -5,6 +5,8 @@ on:
5
5
  push:
6
6
  branches:
7
7
  - "**"
8
+ schedule:
9
+ - cron: "23 5 * * 1"
8
10
  release:
9
11
  types: [published]
10
12
 
@@ -36,3 +38,39 @@ jobs:
36
38
 
37
39
  - name: Run security gate
38
40
  run: sh catalog/skills/project-security/assets/generic-ci-security-gate.sh
41
+
42
+ dependency-report:
43
+ if: github.event_name == 'schedule'
44
+ runs-on: ubuntu-24.04
45
+ steps:
46
+ - name: Checkout
47
+ uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
48
+
49
+ - name: Setup Node
50
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
51
+ with:
52
+ node-version: "20"
53
+
54
+ - name: Install dependencies (auto-detect package manager)
55
+ run: |
56
+ corepack enable
57
+ if [ -f pnpm-lock.yaml ]; then
58
+ pnpm install --frozen-lockfile
59
+ elif [ -f yarn.lock ]; then
60
+ yarn install --immutable
61
+ elif [ -f package-lock.json ]; then
62
+ npm ci
63
+ elif [ -f package.json ]; then
64
+ echo "[project-security] missing lockfile; refusing non-deterministic install" >&2
65
+ exit 1
66
+ fi
67
+
68
+ - name: Generate dependency report
69
+ run: |
70
+ node scripts/dependency-security-check.mjs --json > dependency-security-report.json
71
+
72
+ - name: Upload dependency report artifact
73
+ uses: actions/upload-artifact@65462800fd760344b1a7b4382951275f52d1598f
74
+ with:
75
+ name: dependency-security-report
76
+ path: dependency-security-report.json
@@ -6,4 +6,4 @@ script_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
6
6
  . "$script_dir/run-security-check.shared.sh"
7
7
 
8
8
  echo "[project-security] running commit gate..."
9
- run_security_check
9
+ run_security_gates
@@ -5,34 +5,5 @@ script_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
5
5
  # shellcheck source=/dev/null
6
6
  . "$script_dir/run-security-check.shared.sh"
7
7
 
8
- run_optional_supply_chain_check() {
9
- if [ -f "pnpm-lock.yaml" ] && command -v pnpm >/dev/null 2>&1; then
10
- if ! pnpm audit --prod; then
11
- echo "[project-security] pnpm audit reported issues." >&2
12
- return 1
13
- fi
14
- return 0
15
- fi
16
-
17
- if [ -f "yarn.lock" ] && command -v yarn >/dev/null 2>&1; then
18
- if ! yarn npm audit; then
19
- echo "[project-security] yarn audit reported issues." >&2
20
- return 1
21
- fi
22
- return 0
23
- fi
24
-
25
- if [ -f "package-lock.json" ] && command -v npm >/dev/null 2>&1; then
26
- if ! npm audit --audit-level=high; then
27
- echo "[project-security] npm audit reported issues." >&2
28
- return 1
29
- fi
30
- return 0
31
- fi
32
-
33
- return 0
34
- }
35
-
36
8
  echo "[project-security] running push gate..."
37
- run_security_check
38
- run_optional_supply_chain_check
9
+ run_security_gates
@@ -25,3 +25,36 @@ run_security_check() {
25
25
  echo "[project-security] no security check command available." >&2
26
26
  return 1
27
27
  }
28
+
29
+ run_dependency_security_check() {
30
+ if [ -f "pnpm-lock.yaml" ] && command -v pnpm >/dev/null 2>&1; then
31
+ if pnpm run -s security:deps >/dev/null 2>&1; then
32
+ pnpm run -s security:deps
33
+ return
34
+ fi
35
+ fi
36
+
37
+ if [ -f "yarn.lock" ] && command -v yarn >/dev/null 2>&1; then
38
+ if yarn -s security:deps >/dev/null 2>&1; then
39
+ yarn -s security:deps
40
+ return
41
+ fi
42
+ fi
43
+
44
+ if [ -f "package.json" ] && command -v npm >/dev/null 2>&1; then
45
+ if npm run --silent security:deps >/dev/null 2>&1; then
46
+ npm run --silent security:deps
47
+ return
48
+ fi
49
+ fi
50
+
51
+ if [ -f "scripts/dependency-security-check.mjs" ] && command -v node >/dev/null 2>&1; then
52
+ node scripts/dependency-security-check.mjs --strict
53
+ return
54
+ fi
55
+ }
56
+
57
+ run_security_gates() {
58
+ run_security_check
59
+ run_dependency_security_check
60
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skilly-hand/skilly-hand",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "license": "CC-BY-NC-4.0",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -29,7 +29,8 @@
29
29
  "catalog:sync": "node ./scripts/sync-catalog.mjs",
30
30
  "agentic:self:sync": "node ./scripts/sync-self-agentic.mjs",
31
31
  "test": "node --test tests/*.test.js && node ./scripts/test-in-sandbox.mjs",
32
- "security:check": "node ./scripts/security-check.mjs",
32
+ "security:deps": "node ./scripts/dependency-security-check.mjs --strict",
33
+ "security:check": "node ./scripts/security-check.mjs --strict-deps",
33
34
  "verify:packlist": "node ./scripts/verify-packlist.mjs",
34
35
  "verify:versions": "node ./scripts/verify-versions.mjs",
35
36
  "verify:publish": "npm run verify:versions && npm run security:check && npm run catalog:check && npm test && npm run verify:packlist",
@@ -46,6 +47,7 @@
46
47
  "doctor": "node ./packages/cli/src/bin.js doctor"
47
48
  },
48
49
  "dependencies": {
49
- "@inquirer/prompts": "^7.10.1"
50
+ "ink": "^5.2.1",
51
+ "react": "^18.3.1"
50
52
  }
51
53
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skilly-hand/catalog",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "private": true,
5
5
  "type": "module"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skilly-hand/cli",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "bin": {