@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 +19 -0
- package/README.md +9 -3
- package/catalog/skills/project-security/assets/generic-ci-security-gate.sh +1 -28
- package/catalog/skills/project-security/assets/github-actions-security-gate.yml +38 -0
- package/catalog/skills/project-security/assets/pre-commit.sample.sh +1 -1
- package/catalog/skills/project-security/assets/pre-push.sample.sh +1 -30
- package/catalog/skills/project-security/assets/run-security-check.shared.sh +33 -0
- package/package.json +5 -3
- package/packages/catalog/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/cli/src/bin.js +126 -161
- package/packages/cli/src/ink-ui.js +692 -0
- package/packages/core/package.json +1 -1
- package/packages/core/src/terminal.js +16 -5
- package/packages/core/src/ui/layout.js +193 -42
- package/packages/detectors/package.json +1 -1
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
|
|
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
|
-
|
|
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
|
|
@@ -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
|
-
|
|
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.
|
|
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:
|
|
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
|
-
"
|
|
50
|
+
"ink": "^5.2.1",
|
|
51
|
+
"react": "^18.3.1"
|
|
50
52
|
}
|
|
51
53
|
}
|